J'ai deux modèles:Comment trier les résultats ActiveRecord en utilisant un attribut dans la superclasse?
class Manufacturer < ActiveRecord::Base
has_many :models
end
class Model < ActiveRecord::Base
belongs_to :manufacturer
belongs_to :model
end
Ce que je veux être en mesure de faire est de trouver tous les fabricants dont les modèles appartiennent à une catégorie donnée:
manufacturers = Model.find(:all, :conditions=>["vehicle_category_id = 1"], :include => :manufacturer, :group => "manufacturer_id").map {|model| model.manufacturer }
Mais je veux être en mesure d'ordonner la résultats par nom de fabricant ie fabricant.nom
Savez-vous comment je peux faire cela?
MISE À JOUR:
Cela fonctionne pour moi, mais semble très inefficace, doit être une meilleure façon:
manufacturers = (Model.find(:all, :conditions=>["vehicle_category_id = 1"], :include => :manufacturer, :group => "manufacturer_id").map {|model| model.manufacturer }).compact.sort{|x,y| x.name <=> y.name}