(我已经看过所有相关的问题,但没有一个对我有用)
在
<tr class="mergedrow">
<th scope="row">
<a href="/wiki/Countries_of_the_United_Kingdom" title="Countries of the United Kingdom">Country
</a>
</th>
<td>England</td>
</tr>
上,我需要在 self 之前获取最后一条记录,但无法弄清楚如何查询“before_update
”。我正在尝试这个:
created_at < self.created_at
我收到了这个错误:
784毫秒内完成500内部服务器错误
ArgumentError(错误的参数数量(给定2,预期1)):
app / models / reporte.rb:49:'set_update_consumo'
app / controllers / reportes_controller.rb:57:在`block in update'
app / controllers / reportes_controller.rb:56:在`update'
如果我删除def set_update_consumo
lastRecord =
Reporte.where(:hidrometro_id => self.hidrometro_id)
.where('created_at < ?', self.created_at)
.order_by(:created_at => 'desc').offset(1).first
set_record(lastRecord)
end
则可行。 SO中的其他答案都没有对我有用,也不能使用宝石(如吱吱声)。
我正在使用Rails 5.0.2(Ruby 2.4)和 Mongoid 。
答案 0 :(得分:3)
在Mongoid中,where
语法与ActiveRecord略有不同,实际上只需要一个参数 - 一个哈希。对于&#34;小于&#34;表达式需要在属性符号上使用.lt
方法:
where(:created_at.lt => self.created_at)
有关详细信息,请参阅docs。
此外,您可能不必在此使用self
,而简单的created_at
应该会给出相同的结果。