【发布时间】:2014-08-17 05:37:55
【问题描述】:
我这样写范围
/models/code.rb
scope :recent, lambda { |n = 10| includes(:user).where('users.deleted_at' => nil).order("users.last_active_at DESC").limit(n) }
但是,有些记录有时具有相同的users.last_active_at。
所以我尝试将 created_at DESC 添加到它,如下所示。
scope :recent, lambda { |n = 10| includes(:user).where('users.deleted_at' => nil).order("users.last_active_at DESC, created_at DESC").limit(n) }
但是我得到了这个错误。我的代码有什么问题?确实,代码表中有一个名为 created_at 的列。
Error (Mysql2::Error: Unknown column 'created_at' in 'order clause'
【问题讨论】:
-
如果您想要的是
users的created_at,则使用users.created_at DESC而不是created_at DESC。如果是codes,则使用codes.created_at DESC。
标签: ruby-on-rails ruby-on-rails-3 activerecord ruby-on-rails-3.2