试图运行
$ rails c RAILS_ENV=development
引发了1个警告和1个错误,我不明白
# warning :
config.eager_load is set to nil. Please update your config/environments/*.rb files accordingly:
* development - set it to false
* test - set it to false (unless you use a tool that preloads your test environment)
* production - set it to true
# error
/config/initializers/devise.rb:13:in `+': no implicit conversion of nil into String (TypeError)
但是,在开发环境中将config.eager_load设置为false
config/environment/development.rb
Rails.application.configure do
config.cache_classes = false
config.eager_load = false
…/…
查看config / initializers / devise.rb(第13行)我有
config/initializers/devise.rb
Devise.setup do |config|
…/…
(13) config.mailer_sender = 'no-reply@' + Rails.application.secrets.domain_name
…/…
导致config / secrets.yml文件
config/secrets.yml
development:
domain_name: example.com
这是可以理解的,因为运行rails c(没有RAILS_ENV),我得到了
$ rails c
development environment (Rails 4.2.3)
irb: warn: can't alias context from irb_context.
irb(main):001:0> Rails.application.secrets.domain_name
=> “example.com”
这个警告也很神秘:
irb:warn:不能别名来自irb_context的上下文
在Google搜索中找不到任何信息......但至少它在开发中运行....
为什么使用RAILS_ENV发出此警告和错误?任何启蒙欢迎
答案 0 :(得分:0)
太糟糕了......我应该阅读最新的4.2 doc !!! 所以我根本不应该使用RAILS_ENV !!
$ rails console staging 加载登台环境(Rails 4.2.3) IRB(主):001:0>出口
$ rails console开发 加载开发环境(Rails 4.2.3) irb:warn:不能来自irb_context的别名。 IRB(主):001:0>出口