在Model.last(5)中为last指定属性或提及表名

时间:2013-06-07 15:54:25

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord

在使用last(10)时的活动记录链接关联中,收到错误:

  

ActiveRecord :: StatementInvalid异常:Mysql2 ::错误:列'id'   在顺序条款是不明确的

为了解决这个问题,我们通常会指定表名,即posts.id,但是如何将最后一个逻辑放在一起?

在查看ActiveRecord Last的文档后,发现它使用了主键。我们还可以指定自定义属性吗?

感谢任何帮助或想法。

由于

2 个答案:

答案 0 :(得分:1)

错误表示您按名为id的列进行排序,并且您的fromjoin子句中至少包含两个包含具有该名称的列的表。您需要相应地对其进行限定,例如: yourtable.id

答案 1 :(得分:0)

感谢MrYoshji先生的建议,激活记录的最后一个交替工作。

您可以传递限制特定列,但不能同时传递两者。

它只接受属性,如果是整数类型,它使用限制,根据文档

order("#{primary_key} DESC").limit(*args).reverse

用于指定“id”以外的属性我们可以使用:

Model.last(:order =>'models.score')

根据我的要求,它不是

  

order(“models.id desc”)。limit(12)

如果可以做得更好,请告诉我。

由于