Rail 4无法在lib文件夹中的脚本中加载Model

时间:2013-11-05 08:22:11

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4

我想在lib文件夹中创建一些脚本,这些脚本应该在我的数据库中插入/更新数据。我想使用我的模型但是当我尝试使用它们时它们没有加载。这些脚本与应用程序无关,它们是cronjobs。实现此逻辑的最佳行为是什么?提前谢谢!

2 个答案:

答案 0 :(得分:1)

如果您希望运行cron作业,可能需要查看Delayed Job gem并将您的课程设置为app/jobs

答案 1 :(得分:0)

只需在lib / tasks / my_db_task.rake下创建一个rake任务 定义rake任务时,请确保它依赖于“环境”任务,它将加载与模型交互所需的所有必需依赖项(以及所有其他类,通常在rails应用程序中可用的库)

desc "insert stuff in my db"
task populate_db: :environment do
    10.times { User.create! name: "bob"}
end

在你的cron中使用以下内容(当然适应你的环境):

* * * * * cd $RAILS_APP && RAILS_ENV=production /usr/local/bin/rake populate_db