按相关模型Rails的数量排序4

时间:2014-03-06 22:56:10

标签: ruby-on-rails-4 sql-order-by associated-object

我有两种模式:

jacket.rb:

  has_many :button
  belongs_to :store

button.rb:

belongs_to :jacket

在我的商店控制器中,我希望能够执行@ store.jackets.order(buttons :: desc),但我不能这样做,因为它不是db列。我该怎么做?

1 个答案:

答案 0 :(得分:0)

您需要编写一些SQL来计算关联,将计数别名替换为名称,并按该名称排序:

@store.jackets.joins(:buttons).select("jackets.*, COUNT(buttons.id) as button_total").order('button_total DESC')

有关sql计数的更多信息here