我正在运行自定义 rake 任务...
namespace :import do
desc "Import terms of service as HTML from stdin"
task :terms => :environment do
html = STDIN.read
settings = ApplicationWideSetting.first
settings.terms_and_conditions = html
if settings.save
puts "Updated terms of service"
else
puts "There was an error updating terms of service"
end
end
end
在 production
环境中运行任务时,模型 ApplicationWideSetting 报告为未定义。但是,当在其他环境(即development
、staging
、test
.)上运行任务时,任务运行良好。
在所有环境中,在 rails 控制台中运行该过程都可以完成。
有谁知道发生了什么,我可以检查一下吗?
注意:我用
puts Rails.env
检查 shell 环境 var RAILS_ENV 是否被正确设置/读取。我也尝试过在 :environment 依赖声明周围使用和不使用方括号。
附加信息: Rails v3.2.14
更多信息:我已经设置了一个全新的 Rails 应用程序,该脚本在任何环境中都可以正常工作。由于有问题的安装是一个真实的生产环境,我将不得不设置另一个部署并彻底检查它。我找到的更多信息。