Rails 4.2控制台问题 - 使用RAILS_ENV = development

时间:2015-09-02 06:59:20

标签: ruby-on-rails-4 devise rails-console

试图运行

$ 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发出此警告和错误?任何启蒙欢迎

1 个答案:

答案 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>出口