Ich verwende meta_search zum Sortieren von Spalten in einer Tabelle. Eine meiner Tabellenspalten ist eine Zählung der zugeordneten Datensätze für ein bestimmtes Modell.Rails meta_search gem: Sortieren nach Anzahl eines zugeordneten Modells
Im Grunde ist es das:
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
in meinem Geschäft # Indexansicht Ich habe eine Tabelle, die für jedes Geschäft die current_inventory_count listet. Gibt es trotzdem eine Meta-Suche, um die Shops nach dieser Anzahl zu sortieren?
Ich kann meine current_inventory_count-Methode nicht verwenden, da meta_search nur benutzerdefinierte Methoden verwenden kann, die einen ActiveRecord :: Relation-Typ zurückgeben.
Der einzige Weg, über den ich darüber nachdenken kann, ist einige benutzerdefinierte SQL zu tun, die die Anzahl in einer "virtuellen" Spalte enthält und die Sortierung nach dieser Spalte. Ich bin mir nicht sicher, ob das überhaupt möglich ist.
Irgendwelche Ideen?
Ich verwende Rails 3.0.3 und die neueste Meta-Suche.
würde meine beste Wette sein, nur eine „current_inventory_records_count“ db Spalte Shops hinzufügen, dass ich nur sicherstellen, ist immer richtig BEFORE_SAVE der Verwendung ? – jfeust