ActiveRecord:模型中记录未找到错误

时间:2017-03-07 14:13:17

标签: ruby-on-rails

我的模型中有这行代码:

pay_period = TimesheetPayPeriod.find(:first, :conditions => ["start_date <= ? AND end_date >= ?", date.to_date, date.to_date])

我收到此错误:

  

ActiveRecord :: RecordNotFound(无法找到所有带有&#39; id&#39;的TimesheetPayPeriod :(首先,{:conditions =&gt; [&#34; start_date&lt; =?AND end_date&gt; = ?&#34;,星期五,2017年3月3日,星期五,2017年3月3日]})(找到0结果,但正在寻找2)):

这个错误意味着什么,我该如何纠正?

2 个答案:

答案 0 :(得分:2)

更改查询以使用新语法

pay_period = 
  TimesheetPayPeriod.where("start_date <= ? AND end_date >= ?", date.to_date, date.to_date).first

答案 1 :(得分:2)

.find()期待id的值。所以例如.find(34)

您可以尝试使用.where()

吗?
pay_period = TimesheetPayPeriod.where("start_date <= ? AND end_date >= ?", date.to_date, date.to_date)

您可能想检查args有效的文档,但认为这应该有效。