0

プログラムとイベントの2つのモデルがあり、プログラムには多くのイベントがあります。特定の日付のイベントがあるプログラムを見つける必要があります。

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

これは正しく動作します。でも使うときは

programme.events

もちろん、プログラムに関連付けられているすべてのイベントを取得します。元のステートメントの基準に一致するイベントだけを取得するにはどうすればよいですか

4

1 に答える 1

1

最も簡単な方法は、プログラムでメソッドを作成することです

class Programme < ActiveRecord::Base
  def events_for_date(date)
    events.where(:date => date).uniq
  end
end

次に、これを呼び出します。

@programme.events_for_date(params[:date])

Event クラスにスコープを追加することもできますが、その方が理解しやすいでしょう。

于 2012-06-19T14:10:39.957 に答える