Sto usando meta_search per ordinare le colonne in una tabella. Una delle colonne della mia tabella è un conteggio dei record associati per un particolare modello.Rails meta_search gem: ordina per il conteggio di un modello associato
In sostanza è questo:
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
nel mio negozio vista # indice Ho una tabella che elenca le current_inventory_count per ogni negozio. Esiste comunque la possibilità di utilizzare meta_search per ordinare i negozi in base a questo conteggio?
Non riesco a utilizzare il mio metodo current_inventory_count poiché meta_search può utilizzare solo metodi personalizzati che restituiscono un tipo ActiveRecord :: Relation.
L'unico modo che posso pensare di fare questo è di fare un po 'di SQL personalizzato che include il conteggio in una colonna "virtuale" e fare l'ordinamento da questa colonna. Non sono sicuro che sia possibile.
Qualsiasi idea?
Sto usando Rails 3.0.3 e l'ultimo meta_search.
sarebbe la mia scommessa migliore è quello di aggiungere solo una colonna db "current_inventory_records_count" per negozi che ho appena Assicurarsi che sia sempre corretto con before_save di ? – jfeust