Гем Rails meta_search: сортировка по количеству связанной модели

Я использую meta_search для сортировки столбцов в таблице. Один из столбцов моей таблицы - это количество связанных записей для конкретной модели.

В основном это:

class Shop < ActiveRecord::Base
  has_many :inventory_records

  def current_inventory_count
    inventory_records.where(:current => true).count
  end
end

class InventoryRecord < ActiveRecord::Base
  belongs_to :shop

  #has a "current" boolean on this which I want to filter by as well
end

В моем представлении индекса Shop # у меня есть таблица, в которой перечислены current_inventory_count для каждого магазина. Есть ли способ использовать meta_search для сортировки магазинов по этому количеству?

Я не могу использовать свой метод current_inventory_count, поскольку meta_search может использовать только пользовательские методы, возвращающие тип ActiveRecord :: Relation.

Единственный способ, которым я могу думать об этом, - это выполнить некоторый пользовательский SQL, который включает счетчик в «виртуальный» столбец и выполните сортировку по этому столбцу. Не уверен, что это вообще возможно.

Есть идеи?

Я использую Rails 3.0.3 и последнюю версию meta_search.

9
задан jfeust 28 December 2010 в 18:20
поделиться