2010-05-18 89 views
0

我有一個模型是這樣的:條件關係

Stem 
    -id 
    -etc 

然後,我有

Stemrelation 
    -stem_id 
    -related_stem_id 
    -active 

我可以得到下面的關係相關的莖

class Stem < ActiveRecord::Base 
    has_many :stemrelations 
    has_many :related_stems, :through => :stemrelations 
end 

class Stemrelation < ActiveRecord::Base 
    belongs_to :stem 
    belongs_to :related_stem, :class_name => "Stem", :foreign_key => "related_stem_id" 
end 

但現在我只想得到積極的關係。

我嘗試添加這對幹型號:

has_many :active_related, :through => :stemrelations, :source => :related_stem, :conditions => {:active => true} 

但becasue它試圖檢查活動標誌的幹模型,而不是stemrelation這給了我一個錯誤。我在這裏改變什麼?

謝謝!

回答

1

你是否確實需要條件關聯。在這裏可以named_scope適合:

class Stem < ActiveRecord::Base 
    has_many :stemrelations 
    has_many :related_stems, :through => :stemrelations 

    named_scope :active, :conditions => {:active => true} 
end 

您可以使用它像這樣:

Stem.first.related_stems.active 
0

的條件,則必須使用SQL語法。