鉴于:
公司
has_many :customers
客户
has_many :messages
我想按照发送的最后一条消息的created_at
日期对客户列表进行排序。我该怎么做?
答案 0 :(得分:0)
我知道的最好方法是merging scopes:
class Customer < ActiveRecord::Base
has_many :messages
scope :by_most_recent_message, -> {
joins(:messages).merge(Message.by_most_recent)
}
end
class Message < ActiveRecord::Base
scope :by_most_recent, -> { order(:created_at).reverse_order }
end
然后你可以拨打company.customers.by_most_recent_message
。