将命令行参数传递给 rake 任务的语法代码不正确


namespace :mails do
  desc "Send emails"
  task :send_emails => :environment do
    User.not_deleted.find_each do |user|
      Notifier.confirm_about_paid_access(user.id).deliver
    end
  end
  desc "Free subscription for users registered in 2011"
  task :free_subscription_for => :environment, :year do |t, args|
    year = args[:year]
    users = User::registered_in(year)
  end
end

显示错误:lib/tasks/mails.rake:10:语法错误,意外keyword_do_block,预期 => 任务 :free_subscription_for => :环境, :年份 do |t, 参数|

语法代码中哪些不正确?

试试这个,

namespace :mails do
  desc "Send emails"
  task :send_emails => :environment do
    User.not_deleted.find_each do |user|
      Notifier.confirm_about_paid_access(user.id).deliver
    end
  end
  desc "Free subscription for users registered in 2011"
  task :free_subscription_for, [:year] => :environment do |t, args|
    year = args[:year]
    users = User::registered_in(year)
  end
end

请注意:free_subscription_for任务的语法。

在执行任务时,语法将rake mails:free_subscription_for["2016"]

希望这有帮助!

最新更新