mrt*_*gle 2 ruby rake ruby-on-rails-3
我正在编写一个rake任务来更新表中特定列的值.当我运行任务时,我收到此错误:
uninitialized constant FirstLookSubscription
Run Code Online (Sandbox Code Playgroud)
这是rake任务代码:
namespace :first_look_db do
desc "Adds one month to the Look Subscription"
FirstSubscription.where(subscription_state: 'active').each do |t|
t.update_attribute :next_billing_check, '2013-9-10'
end
end
Run Code Online (Sandbox Code Playgroud)
我是rake任务的新手,我不想将其作为迁移.任何建议都会很棒!
还要注意:当我在rails控制台中运行它时,它执行没有问题,我最大的问题是将它变成一个rake任务,以便我们的主管开发人员可以运行它
你真的需要一个任务名称.在namespace给出了任务的命名空间,但是通过名称声明一个任务,并导入环境,以便它可以找到你ActiveRecords:
namespace :first_look_db do
desc "Adds one month to the Look Subscription"
task :add_month_to_look_sub => :environment do
FirstSubscription.where(subscription_state: 'active').each do |t|
t.update_attribute :next_billing_check, '2013-9-10'
end
end
end
Run Code Online (Sandbox Code Playgroud)
这将进入一个名为的文件lib/tasks/first_look_db.rake.该任务由以下人员调用:
rake first_look_db:add_month_to_look_sub
Run Code Online (Sandbox Code Playgroud)
或者可能:
bundle exec rake first_look_db:add_month_to_look_sub
Run Code Online (Sandbox Code Playgroud)
如果第一个告诉你这样做.您可以在文件中命名namespace并按照task您的意愿命名rake.我刚从你所拥有的东西中挑选了一些似乎对我有意义的名字.
| 归档时间: |
|
| 查看次数: |
4179 次 |
| 最近记录: |