Ruby on rails Rails自定义Rake任务无方法错误
我正在尝试为Rails应用程序设置一个自定义rake任务,检查您的位置是否在有街道清洁限制的特定区域内。如果是,您可以单击“提醒我”按钮,将用户id和限制id保存到提醒表中 我让Rufus gem每15分钟运行一次rake任务 然后我想要的是rake任务检查当前时间和日期以及与限制id对应的日期和开始时间,如果在30分钟内,它应该通过电子邮件发送给用户以移动他们的汽车 当我运行下面的当前代码时,出现以下错误:Ruby on rails Rails自定义Rake任务无方法错误,ruby-on-rails,ruby,rake,rake-task,rufus-scheduler,Ruby On Rails,Ruby,Rake,Rake Task,Rufus Scheduler,我正在尝试为Rails应用程序设置一个自定义rake任务,检查您的位置是否在有街道清洁限制的特定区域内。如果是,您可以单击“提醒我”按钮,将用户id和限制id保存到提醒表中 我让Rufus gem每15分钟运行一次rake任务 然后我想要的是rake任务检查当前时间和日期以及与限制id对应的日期和开始时间,如果在30分钟内,它应该通过电子邮件发送给用户以移动他们的汽车 当我运行下面的当前代码时,出现以下错误: rake aborted! undefined method `reminders'
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
我想我就快到了,但我已经为此工作了几个月,对下一步有点不知所措
提前谢谢
-米歇尔问题在于这一行:
today = Day.where(:id => time.wday + 1)
这不是返回记录,而是返回一个ActiveRecord::relationship
,这意味着还没有对查询进行评估。(它这样做是为了让您可以将过滤器链接在一起,并且只有在您对其进行迭代时,才会对其求值为SQL
在不知道您的日
模型是什么样子的情况下,我认为您想要的是:
today = Day.where(:id => time.wday + 1).first
这将返回第一个结果,如果没有结果,则返回
nil
。如果today
为非nil,则将使用提醒方法。谢谢!这消除了错误并给了我一个新的错误,因此朝着正确的方向迈出了一步!
today = Day.where(:id => time.wday + 1).first