Я использую 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.