2009-07-17 6 views
2

私は最近、2.0.5から2.3.2まで取り組んでいるレールプロジェクトをアップグレードしました。私は、ベンダー/レールに2.0.5のレールファイルのローカルコピーがあることに気付きました。私は2.3.2のレールファイルをローカルコピーに置くべきか、それともそれらを放置すべきか疑問に思っていました。より良い方法とは何でしょうか?レールアプリケーションのRailsのローカルコピー

答えて

3

はい。 vendor/railsにあるRailsのコピーは、システム全体にインストールされたRailsの宝石よりも実際に使用されます。つまり、Railsのインストールをアップグレードしたにもかかわらず、あなたのアプリはまだ2.0.5でも実行されています。

vendor/railsディレクトリが存在するため、アプリを特定のバージョンのRailsに「フリーズ」することができます。これにより、実行中のマシンの設定の変更に対する脆弱性が軽減されます。これはディレクトリを管理するための自動化された方法があるので便利です。 、vendor/railsに座ってのRailsの既存のバージョンを削除し、あなたのRailsプロジェクトディレクトリのルートに移動し、次の操作を行います。

rake rails:unfreeze 

その後、vendor/railsにあなたのシステム上の最新のRailsの宝石をインストールするには、実行します。

rake rails:freeze:gems 

vendor/railsで行うことができる他にもいくつかあります。コマンドの完全なリストについては、rake -Tを参照してください。

P.S. Railsがインストールされていることについて誰かが話しているのを聞いたことがあれば、これが意味することです。

+0

私はそれがローカルコピーを使用していることに気付いたので、単にベンダーからレールを削除しました。答えをありがとう。 – AdamB

1

一方、状況は少し変わりました。

rake rails:freeze 

rake rails:unfreeze 

廃止されました。代わりに、使用する必要があります。

bundle install --path vendor/bundle 

bundle install --system 

をスイッチバックします。

関連する問題