在使用 last(10) 时的活动记录链接关联中,出现错误:
ActiveRecord::StatementInvalid 异常:Mysql2::Error: order 子句中的列 'id' 不明确
为了解决这个问题,我们通常指定表名,即posts.id,但我怎样才能把相同的逻辑放在最后呢?
在浏览了ActiveRecord Last的文档后,发现它使用了主键。我们还可以指定自定义属性吗?
任何帮助或想法表示赞赏。
谢谢
在使用 last(10) 时的活动记录链接关联中,出现错误:
ActiveRecord::StatementInvalid 异常:Mysql2::Error: order 子句中的列 'id' 不明确
为了解决这个问题,我们通常指定表名,即posts.id,但我怎样才能把相同的逻辑放在最后呢?
在浏览了ActiveRecord Last的文档后,发现它使用了主键。我们还可以指定自定义属性吗?
任何帮助或想法表示赞赏。
谢谢
该错误意味着您正在按名为的列进行排序,id
并且您的from
andjoin
子句中至少有两个表,其中包含具有该名称的列。您需要相应地对其进行限定,例如yourtable.id
.
感谢 MrYoshji 的建议,最后一个为 activerecord 交替工作。
您可以通过限制或特定列,但不能同时通过。
它只接受属性,如果它使用限制类型的整数,根据文档
order("#{primary_key} DESC").limit(*args).reverse
要指定“id”以外的属性,我们可以使用:
Model.last(:order => 'models.score')
按照我的要求,应该是
order("models.id desc").limit(12)
让我知道这是否可以做得更好。
谢谢