【发布时间】:2014-04-12 19:22:22
【问题描述】:
我正在尝试为 Rails 应用程序设置自定义 rake 任务,以检查您的位置是否在具有街道清洁限制的特定区域内。如果是,您可以单击“提醒我”按钮,将用户 ID 和限制 ID 保存到提醒表中。
我让 Rufus gem 每 15 分钟运行一次 rake 任务。
然后我想要的是 rake 任务来检查当前时间和日期以及与限制 ID 对应的日期和开始时间,如果在 30 分钟内,它应该通过电子邮件向用户移动他们的汽车。
当我在下面运行我当前的代码时,我得到了这个错误:
rake aborted!
undefined method `reminders' for # <ActiveRecord::Relation::ActiveRecord_Relation_Day:0x007fb38c3274f8>
/Users/m/WDI/park_pointer/lib/tasks/reminder.rake:11:in `block (2 levels) in <top (required)>'
Tasks: TOP => reminder:mail_users
这是我的整个项目:https://github.com/mnicole/park_pointer
但是rake任务的代码是:
namespace :reminder do
desc "REMINDER"
task :mail_users => :environment do
time = Time.new
t = Time.now
today = Day.where(:id => time.wday + 1) #returns 0 for sunday, etc
@reminders = today.reminders
@reminders.each do |reminder|
@reminder = reminder
reminder_time_in_mins = restriction.start_time.hour * 60
current_time_in_mins = (Time.now.hour * 60) + Time.now.min
# last_time_in_mins = record.last.hour * 60 + record.last.min
if current_time_in_mins > (reminder_time_in_mins - 30)
@user = User.find(reminder.user_id.last)
UserMailer.reminder_email(user_id).deliver!
end
end
end
end
我想我快到了,但我已经为此工作了几个月,对下一步有点茫然。
提前致谢!!
-米歇尔
【问题讨论】:
标签: ruby-on-rails ruby rake rake-task rufus-scheduler