2013-05-26 80 views
0

在我的Rails 3.2應用程序中,我在Profile上有has_and_belongs_to_many :notes關聯。 Note有一個類型 - 「緊急」或「標準」。 (Notehas_and_belongs_to_many :profiles如何獲取has_and_belongs_to_many關係的子集

我希望能夠做到像profile.urgent_notes沒有等的方法構建它:

def urgent_notes 
    urgent_notes = Array.new 
    goals.each do |g| 
    if g.type == "urgent" 
     urgent_notes << g 
    end 
    end 

    urgent_notes 
end 

那麼,有沒有乾淨的方式通過添加另外一個協會這樣做呢?或者像範圍最好的東西?

回答

1

注意範圍將是最好的。 範圍:緊急,其中(類型:'urgent')

然後,您可以執行profile.notes.urgent以獲取緊急備註。

+0

夠公平的。謝謝! – tvalent2

1

如果你不想使用範圍,這裏是你的個人資料方法的重寫:

def urgent_notes 
    self.goals.map {|g| g.type == 'urgent'} 
end 

你並不需要創建一個新的陣列或任何東西。 Rails和Ruby可以爲你工作。

+0

確實很好。 – tvalent2

相關問題