RailsでのGemfile
の使用は何ですか?
Gemfile
の使用方法
Railsでの開発中に、必要な機能を提供したい場合がありますが、方法がわからないか、自分で実装したくない場合があります才能のある開発者によって開発が行われました。
必要になる可能性のあるこれらの開発(ユーザー認証、メッセージシステム、アセットハンドラー、ジオロケーション、ページネーションシステム、Amazon AWSなどの外部サービスへのリンク、最後になりますがRails自体)はRuby宝石。これらはRubyソフトウェアパッケージであり、必ずしもRailsに関連するわけではありませんが、RailsはRubyをベースにしているため、98%のgemをRailsで使用できます。 webappコード。
多くの宝石は github で見つけることができますが、 Ruby-gems または Ruby-toolbox を介して宝石を検索するのが楽しいです
gemfile
は、プロジェクトに含めるすべてのgemのリストです。 bundler (gem)とともに使用して、使用済みのgemをインストール、更新、削除、その他の方法で管理します。
gemfile
には別の目的があります-:development
、:test
、:assets
、:production
などのグループとRailsで宝石をグループ化できますいつ宝石を含めるかを知っています。例えば:
group :development, :test do
gem "rspec-Rails"
gem "factory_girl_Rails"
gem "guard-rspec"
end
Rails 4では、assets
グループが廃止されていることに注意してください
これらのgemはアプリケーションのテスト用であるため、開発環境とテスト環境に属します。実稼働環境でそれらを使用可能にする必要はありません(可能ですが、不必要にメモリが膨張します)。
したがって-gemfile
を使用するには、インストールするgemを次のように記述するだけです。
gem 'devise'
事前に(コンソール/ cmd/sshで)bundler
をインストールしてください。
$ gem install bundler
そして、コンソールに書き込みます
bundle install
別のgemfileが表示されます! Gemfile.lock
このファイルは、テキストリーダーで開くとわかるように、すべてのgemのバージョンと依存関係を一覧表示します。これは、インストールしたgemのバージョンを知る必要があるときに役立ちます。
Gemfile
の詳細については、- バンドラーページで読む
gemの選択に関する情報については、 this で始めることができます
頑張って楽しんでね!
OK、それでは作成されたこのGemfile.lockは何ですか?
Gemfile.lockは、その名前が示すように、インストールされたすべてのgemのすべてのバージョンのロックです。そのため、Gemfileをインストールする必要がある場合、ロックファイルはインストールされたものであり、アプリを起動して実行するために実際に必要なバージョンです。
その特定のバージョン(Gemfile.lockで指定されている)にgemがない場合は、Railsが文句を言うので、不足しているgemをインストールする(bundle install
経由)か、修正する必要があります。手動で競合します(バンドラーがその手がかりを与えると信じています)
_Gemfile.lock
について知っておくべきこと
bundle install
を実行すると再生成されます。誤ってGemfile
を削除してしまった場合、運が悪くなります。gitを使用する必要があります:)Gemfile
sは、アプリケーションのRuby依存関係を管理するために使用される Bundler の設定です。このWebサイトには、 Gemfileのマニュアルページ 。
簡単な答えをしてみます
類推による説明
車を作りたいとしましょう。最初から。今では悪夢になります。シャーシ、エンジン、コロボレーター、ラジエーター、冷却、換気などを構築する必要があります。
宝石を使用すると、他の人が以前に作った車の部品を利用できます
しかし、車を作るのはあなただけではありません。これまでに車を作った人は誰でも、基本的に同じことをしました。あなたがいる前に出かけて、燃焼エンジンなどを作った賢い人々がいました...........実際には気にしません。
車輪を再発明する必要はありません。最高の機器をすぐに入手できるのに、なぜ自分で作るのですか?指を離さずに、世界で最も才能のあるエンジニアによって作成された最高のエンジンを入手できるとしたらどうでしょう? 1年かけて自分で作ろうとしていますか?
したがって、基本的にすべてを自分で作成するのではなく、必要なすべての部品の買い物リストを書き留めます。そして、それは基本的にgemファイルです:
私の友人は基本的にあなたのgemファイルです!
システムには多くのgemを含めることができます...したがって、同じgem
の複数のバージョンを持つことができます。
Gemfile
は、Railsアプリケーションを実行するたびに使用/ロード/(存在しない場合はインストール)するgems
を含むversions
のリストを指定します。またはbundle exec . .
のあるもの
まず、宝石とは何ですか?
ウィキペディアによると:
RubyGemsは、Rubyプログラムおよびライブラリを配布するための標準形式を提供するRubyプログラミング言語のパッケージマネージャーです。
Gemfile
Gemfileは、Rubyプログラムのgem依存関係を記述するために使用する、作成するファイルです
今、非常に簡単な言葉で:
Gemは、コードで使用できるライブラリと考えることができます。例: faker gem
コードはfaker
gemの機能を使用して偽のデータを生成できます。
これで、プロジェクトに必要なすべてのgemをgemfileにリストできます。バンドルインストールを実行すると、gemfile内のすべてのgemがインストールされます。