(他の問題の中でも)単一のレガシーアプリを実行するためだけに、古いバージョンのRailsに戻す必要がありますか?

StackOverflow https://stackoverflow.com/questions/800089

質問

実行する必要がある古いRailsアプリがあります。しかし、私はRailsの最新バージョンを持っています。

この古いアプリを実行しようとすると、次のように表示されます:

  

Rails 1.99.0 gemがありません。お願いします    gem install -v = 1.99.0 rails

しかし、コマンドを実行すると: gem install -v = 1.99.0 rails

  

エラー:gemレールが見つかりませんでした   ローカルまたはリポジトリ内

次に何をすべきかわからない。ここで何が起こっているのかを誰かが理解するのを手伝ってくれますか?

この問題に関連する2番目の質問は、この1つのレガシーアプリを実行するためだけに古いバージョンのRailsに戻す必要があるのはばかげているようです。

役に立ちましたか?

解決

AFAIK、 v1.99.0 v2.0 プレリリースの一種であるため、 v2.0.x をインストールして、 config / environment.rb RAILS_GEM_VERSION および rake rails:update を実行します。

考えてみると、最初に見えるほど愚かではありません。 RoRとして高速に進化するWebフレームワークを使用してアプリを作成します。選択肢は次のとおりです。フレームワークが進化しているのとほぼ同じペースでアプリの開発を続けるか、またはRails gem(およびアプリが依存するすべてのもの、gem、プラグインなど)をアプリに固定して、gemを期待しにくいようにしますアップデート。

他のヒント

2番目の質問について:はい、それはばかげています。幸いなことに、Railsチームは愚かさを発見し、ある時点で「フリーズ」する機能を提供してくれました。アプリケーションに必要なRailsライブラリのバージョン(および特定のgemバージョン)を vendor ディレクトリに追加します。

Railsのバージョンをフリーズするには:

rake rails:freeze:gems

良いブログ投稿がありますこれを説明しながら。

RVMをインストールおよび展開しない限り、インストールはシステムレールのインストールをロールバックし、他のプロジェクトに影響を与えます。この方法で開発環境を手動で管理する場合は、最初にRailsをアンインストールしてから、現在のプロジェクトに必要なバージョンのRailsをインストールできます。

ただし、代わりに次の構文を使用してrails gemをインストールしてください:

sudo gem install rails -v 1.99.0
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top