51

Gemfileレールでの使用は何ですか?

使い方はGemfile

4

5 に答える 5

93

Rails での開発中に、必要な機能を提供したい場合がありますが、その方法がわからないか、自分で実装したくない場合があります。仕事は才能のある開発者によってその開発に投入されました。

これらの必要な開発 (ユーザー認証、メッセージ システム、アセット ハンドラー、地理位置情報、ページネーション システム、Amazon AWS などの外部サービスへのリンク、そして最後に Rails 自体) は Ruby Gems と呼ばれます。これらは Ruby ソフトウェア パッケージであり、必ずしも Rails に関連するものではありませんが、Rails は Ruby に基づいているため、Gem の 98% を Rails Web アプリケーション コードで利用できます。

githubにはたくさんの gem がありますが、ruby​​-gemsruby ​​-toolbox を介して gem を検索する方が楽しいです。

Yourgemfileは、プロジェクトに含めたいすべての gem のリストです。これは、バンドラー(gem でもあります) と共に使用され、使用済みの gem をインストール、更新、削除、およびその他の方法で管理します。

gemfileは別の目的があります。gem を:development:test:assets:productionなどのグループにグループ化すると、Rails はいつ gem を含めるかを認識します。例えば:

group :development, :test do
    gem "rspec-rails"
    gem "factory_girl_rails"
    gem "guard-rspec"
end

Rails 4 では、このassetsグループは非推奨になっていることに注意してください。

これらの gem は、アプリケーションをテストするためのものであるため、開発環境とテスト環境に属します。実稼働環境でそれらを使用できるようにする必要はありません (可能ですが、メモリが不必要に肥大化します)。

だから - を使用するにはgemfile、インストールしたいgemを次のように書くだけです

gem 'devise'

bundler事前に(コンソール/ cmd / sshに)インストールしてください

$ gem install bundler

次に、コンソールに書き込みます

bundle install

別の gemfile が表示されます。Gemfile.lock このファイルは、テキスト リーダーで開くとわかるように、すべての gem とそのバージョンおよび依存関係が一覧表示されます。これは、インストールした gem のバージョンを知る必要がある場合に役立ちます。

詳細については、Gemfileバンドラーページを参照してください。

ジェムの選択に関する情報については、これから始めることができます

頑張って楽しんでね!


では、作成されたこの Gemfile.lock は何ですか?

Gemfile.lock は、その名前が示すように、インストールされたすべての gem のすべてのバージョンをロックします。したがって、Gemfile をインストールする必要がある場合、ロック ファイルはインストールされたものであり、アプリを起動して実行するために実際に必要なバージョンです。

その特定のバージョン (Gemfile.lock で指定されている) に gem がない場合、レールは文句を言い、不足している gem を ( 経由でbundle install) インストールするか、競合を手動で修正する必要があります (バンドラーがいくつかの手がかりを与えると思います)その上で)

知っておくべきことGemfile.lock

  • 誤って削除した場合は、実行時に再生成されますbundle install。誤って を削除Gemfileした場合は、運が悪い.. git を使用する必要があります :)
  • Heroku はすべての gem を再インストールするため、Gemfile.lock を気にしません。したがって、Heroku の場合、必要なgem バージョンを設定する必要があります。そうしないと、Heroku は常に最新バージョンの gem をインストールするため、問題が発生する可能性があります。
  • プロジェクトに Gemfile.lock を保持して、アプリが適切に動作する gem のバージョンを常に把握できるようにします。
于 2012-12-28T17:45:38.610 に答える
11

Gemfiles は、アプリケーションの Ruby 依存関係を管理するために使用されるBundlerの構成です。この Web サイトには、 Gemfile マニュアル ページなど、多くのドキュメントが含まれています。

于 2012-12-28T17:05:16.243 に答える
4

類推による説明

あなたは車を作りたいと思っています。最初から。組み立てる必要があるもの: シャーシ、エンジン、コロボレーター、ラジエーターなど。

宝石を使用すると、他の人が以前に作成した車の部品を利用できます

車を作ったことのある人なら誰でも、同じものを必要としています。

車輪を再発明する必要はありません。すぐに入手できるのに、なぜ独自のエンジンなどを作るのですか? 世界で最も才能のあるエンジニアによって作成された最高のエンジンの 1 つを指一本動かさずに手に入れることができたらどうでしょうか? 1年かけて自作するつもり?

したがって、基本的にすべてを自分で作成するのではなく、必要なすべての部品の買い物リストを書き留めます。

  • ロールスロイス エンジン
  • AutoLive シートベルト
  • ミシュランのタイヤ。
  • PIAAナイトヘッドライト
  • などなど

私の友人は、基本的にあなたの宝石ファイルです!

于 2016-03-17T12:07:37.023 に答える
1

あなたのシステムはたくさんの宝石を持つことができます...したがって、同じの複数のバージョンを持つことができますgem

Aは、レールアプリケーションを実行するたびに使用/ロード/(存在しない場合はインストール)するGemfileリストを指定しgemsます。versionsまたは何でもbundle exec . .

于 2012-12-28T17:09:42.267 に答える