如何将Model导入自定义rake任务?

Bla*_*man 1 ruby ruby-on-rails

在我的lib/tasks文件夹中,我添加了一个新的.rake文件.

在rake任务中,我这样做:

p = Post.new( ....)
p.save!
Run Code Online (Sandbox Code Playgroud)

当我运行我的任务时,我收到错误:

rake aborted!
uninitialized constant Post
Run Code Online (Sandbox Code Playgroud)

导入Post模型需要做什么?

Pau*_*ter 5

我在想你可能错过了环境宣言.这是必要的,以便Rake了解您的Rails环境.您的rake任务调用应该如下所示:

task :my_rake_task => [:environment] do

    # Your code here

end
Run Code Online (Sandbox Code Playgroud)

如果能解决问题,请告诉我!


tom*_*opp 5

您想让任务依赖于 rails 环境。您可以通过在任务声明之后指定 => :environment 来做到这一点:

namespace :my_task do 
  desc "an example task"
  task :create_post => :environment do 
    Post.new .... # the rest of the implementation
  end
end
Run Code Online (Sandbox Code Playgroud)