Używam meta_search do sortowania kolumn w tabeli. Jedną z kolumn tabeli jest liczba powiązanych rekordów dla konkretnego modelu.Railsy gem meta_search: sortowanie według liczby powiązanych modeli
W zasadzie to tak:
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
w moim sklepie widoku indeksu # Mam tabeli z listą zewnątrz current_inventory_count dla każdego sklepu. Czy mimo to używać meta_search do zamawiania sklepów według tej liczby?
Nie mogę użyć mojej metody current_inventory_count, ponieważ meta_search może używać tylko niestandardowych metod zwracających typ ActiveRecord :: Relation.
Jedyny sposób, w jaki mogę to zrobić, to wykonanie niestandardowego kodu SQL, który zawiera liczbę w kolumnie "wirtualnej" i sortowanie według tej kolumny. Nie jestem pewien, czy to nawet możliwe.
Jakieś pomysły?
Używam Rails 3.0.3 i najnowszego meta_search.
będzie moja najlepiej być po prostu dodać „current_inventory_records_count” kolumny db Shops że tylko upewnić się, jest zawsze prawidłowa użyciu before_save-tych ? – jfeust