2012-03-21 12 views
0

私のgemディレクトリには、レール2.3.4とレール2.3.14のgemがあります。environment.rbでレールのバージョンを設定するときの異常な動作

rails _2.3.4_ foo 

プロジェクトを作成します行置き換えます

if true 
    RAILS_GEM_VERSION = '2.3.4' 
else 
    RAILS_GEM_VERSION = "2.3.14" 
end 

RAILS_GEM_VERSION = '2.3.4' unless defined? RAILS_GEM_VERSION 

を、私は、コンソールを実行すると、私が取得:

Loading development environment (Rails 2.3.14) 

が、中に入力した場合:

>> Rails.version 
=> "2.3.4" 

しかし、今私はコメントを追加:

if true 
    RAILS_GEM_VERSION = '2.3.4' 
    # comment 
else 
    RAILS_GEM_VERSION = '2.3.14' 
end 

を、私はコンソールを起動し、取得:今、それは」で2.3.4を指す

Loading development environment (Rails 2.3.4) 
Rails version = 2.3.4 

注意読み込み中の行。コメントはこれに影響すると私は本当に奇妙に思えます。

答えて

0

レールのどのバージョンを使用するかを決定するレールブートストラップコードは、実際にはenvironment.rbを実行しません。そのファイルを読み込み、設定した内容を抽出しようとします。RAILS_GEM_VERSION。そのコードは条件文などで簡単に混乱します。

どのバージョンのgemが使用されているかを正確に制御したい場合は、bundlerを使用することをお勧めします。