gpt4 book ai didi

ruby - 用于更新列值的 Rake 任务

转载 作者:数据小太阳 更新时间:2023-10-29 08:20:32 24 4
gpt4 key购买 nike

我正在编写一个 rake 任务来更新表中特定列中的值。当我运行任务时,出现此错误:

uninitialized constant FirstLookSubscription

这里是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

我是 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

这将进入名为 lib/tasks/first_look_db.rake 的文件。该任务由以下人员调用:

rake first_look_db:add_month_to_look_sub

或者可能:

bundle exec rake first_look_db:add_month_to_look_sub

如果第一个告诉你这样做。您可以在 rake 文件中随意命名 namespacetask。我只是从你的名字中挑选了一些对我来说有意义的名字。

关于ruby - 用于更新列值的 Rake 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17823005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com