从rake任务访问rails模型

ed1*_*d1t 3 rake rake-task ruby-on-rails-3

如何从rails rake任务访问模型对象?

如果我$scheduler = Rufus::Scheduler.start_new在我的rake中初始化我的rufus调度程序,那么调度程序会保持活动状态,因为它来自rake任务吗?

ayc*_*ter 9

要在rake任务中访问rails模型,您需要加载:environment环境.

task :my_task => [:environment] do
  User.new #...
end
Run Code Online (Sandbox Code Playgroud)

您不会在任务中调用调度程序,反之亦然.您需要启动Rufus调度程序,然后从它们调用您的rake任务.

你需要先

# other require statements ...
require 'rake'

# ...

scheduler = Rufus::Scheduler.start_new
scheduler.cron "00 6 * * *" do
  Rake::Task["sometask"].invoke
end
Run Code Online (Sandbox Code Playgroud)