【发布时间】:2017-05-09 21:53:56
【问题描述】:
我有以下自动生成每日帖子的 rake 任务,或者如果用户没有帖子,它会自动追溯生成所有帖子到他们的开始日期:
namespace :abc do
desc "Used to generate a new daily log"
task :create_post => :environment do
User.find_each do |currentUser|
starting_date = currentUser.start_date
if Date.today >= starting_date && Date.today.on_weekday?
if currentUser.posts.count.zero?
starting_date.upto(Date.today) { |date| currentUser.generate_post if date.on_weekday? }
else
currentUser.generate_post
end
end
end
puts "It actually worked yo!"
end
end
我正在尝试使用“upto”方法实现帖子的追溯生成,但是当我按照编写的代码运行代码时,出现以下错误:
NoMethodError: undefined method `upto' for Tue, 09 May 2017 21:42:54 UTC +00:00:Time
C:/Users/vanbeeandr/workspace/online_journal/lib/tasks/create_post.rake:14:in `block (3 levels) in <top (required)>'
C:/Users/vanbeeandr/workspace/online_journal/lib/tasks/create_post.rake:7:in `block (2 levels) in <top (required)>'
NoMethodError: undefined method `upto' for 2017-05-09 21:42:54 UTC:Time
C:/Users/vanbeeandr/workspace/online_journal/lib/tasks/create_post.rake:14:in `block (3 levels) in <top (required)>'
C:/Users/vanbeeandr/workspace/online_journal/lib/tasks/create_post.rake:7:in `block (2 levels) in <top (required)>'
Tasks: TOP => abc:create_post
(See full trace by running task with --trace)
我觉得我的 rake 任务写得正确,所以我不确定为什么会抛出这个错误。有人可以帮忙吗?
【问题讨论】:
-
用户的
start_date是哪个类的实例?是日期、日期时间...? -
start_date 是日期时间
标签: ruby-on-rails