在environment.rb中设置rails版本时的奇怪行为

时间:2012-03-21 17:37:36

标签: ruby-on-rails

我的gem目录中有rails 2.3.4和rails 2.3.14 gems。创建一个项目

rails _2.3.4_ foo

替换行:

RAILS_GEM_VERSION = '2.3.4' unless defined? RAILS_GEM_VERSION

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

现在,当我运行控制台时,我得到:

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

然后启动控制台,获取:

Loading development environment (Rails 2.3.4)
Rails version = 2.3.4

请注意,现在它在“加载”行中指向2.3.4。对我而言,评论会对此产生影响,这似乎很奇怪。

1 个答案:

答案 0 :(得分:0)

确定要使用哪个版本的rails的rails引导代码实际上并不执行您的environment.rb - 它读取该文件并尝试提取您设置的RAILS_GEM_VERSION。该代码很容易被条件等混淆。

如果您想要精确控制使用哪种版本的宝石,我建议您使用捆绑包。