我希望我的一个初始化程序(config/initializers/
)中的代码仅针对:development
环境运行,而不是:test
或:production
。最好的方法是什么?
将其粘贴到config/environments/test.rb
似乎不干净,我不太喜欢在if Rails.env == 'development' do ... end
语句中包装整个初始化文件。是否有一些规范的方法来做到这一点?
(背景:为了加快测试加载时间,我正在尝试将Barista gem移动到:development
的{{1}}组中,但是Gemfile
调用config/initializers/barista_config.rb
,现在它在测试(和生产)模式下窒息了。)
答案 0 :(得分:46)
我非常确定您只有两个选项是将配置代码放在config/environments/development.rb
中,或者将初始化代码包装在if
块中。不过,您可以通过if Rails.env.development?
收紧第二个选项。
答案 1 :(得分:3)
我不知道这是不是一个好主意,但这是一个不同的想法。
您可以创建config/initializers/development
目录(或config/environments/development/initializers
),将barista_config.rb
放在该目录中,然后在config/environments/development.rb
中包含该目录中的任何内容。
我不知道这是不是一个好主意,但它至少是第三种选择......以防万一你还在考虑这个问题三和一个提问半年后。
答案 2 :(得分:1)
Barista有一个配置设置:
Barista.configure do |c|
c.env = :development
end
这只会在开发模式下将coffescript重新编译为js,并且应该加速你的测试。
确保你跑:
rake barista:brew
在检查您的代码之前。