在Rails 4. *中调用first
将向SQL查询添加隐式顺序。
尝试这样做时我的订购有问题:
MyModel.select('my_model.*').from('my_model mm')
.joins(joins_statement)
.where(where_statement)
.first
它引发了异常:
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'my_model.id' in 'order clause':
SELECT mm.* FROM my_model mm
JOIN joins_statement
WHERE where_statement
ORDER BY `my_model`.`id` ASC LIMIT 1
如果不在.first调用的所有关系中添加.order(),我应该怎么做才能修复此错误?
P.S。我有Rails 4.2.1,ruby-2.1.4。
答案 0 :(得分:0)
您可以使用limit
来获取单个记录:
MyModel.select('my_model.*').from('my_model mm')
.joins(joins_statement)
.where(where_statement)
.limit(1)
与使用first
相同,只是没有订购。