2010-03-03 4 views
1

J'ai simple beaucoup à plusieurs ER décrit comme ci-dessous:requête (M: N) commandé par la relation d'attributs

Modèle order.rb:

class Order < ActiveRecord::Base 
    has_many :cronologies 
    has_many :statuses, :through => :cronologies 
end 

Modèle cronology.rb:

class Cronology < ActiveRecord::Base 
    belongs_to :order 
    belongs_to :status 
    validates_uniqueness_of :order_id, :scope => :status_id 
end 

Modèle status.rb:

class Status < ActiveRecord::Base 
    has_many :cronologies 
    has_many :orders, :through => :cronologies 
end 

Th Le code ci-dessous me permet d'obtenir tous les statuts attribués à une commande.

@order.statuses 

... mais comment obtenir des états commandés par l'attribut « created_at » de la table CHRONOLOGIE?

Répondre

5
@order.statuses.all(:order => "cronologies.created_at") 

ou de le mettre en association si vous le souhaitez toujours commandé de cette façon.

class Order < ActiveRecord::Base 
    has_many :cronologies 
    has_many :statuses, :through => :cronologies, :order => "cronologies.created_at" 
end 
Questions connexes