2012-06-19 35 views
0

我有兩個模型,程序和事件,一個程序有很多事件。我需要找到具有特定日期的活動的節目。Ruby on Rails 3父母和孩子只能找到特定的孩子,與父母

 @programmes = Programme.joins(:events).where(:events => {:date => params[:date]}).uniq 

這個工作正常。但當然使用

programme.events 

它時,得到與計劃相關的所有活動,我怎麼能得到公正匹配原始聲明中表示,標準

回答

1

最簡單的方法是在程序

創建一個方法事件
class Programme < ActiveRecord::Base 
    def events_for_date(date) 
    events.where(:date => date).uniq 
    end 
end 

你可以這樣調用這個:

@programme.events_for_date(params[:date]) 

你ç還應該爲Event類添加一個範圍,但這可能更容易理解。

+0

完美,謝謝 – DickieBoy

+1

您也可以將此方法實現爲[關聯擴展](http://guides.rubyonrails.org/association_basics.html#association-extensions),它將它與'events'關聯更緊密地聯繫起來。 – Stefan