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