0

我有两个模型,程序和事件,一个程序有很多事件。我需要找到具有特定日期的事件的程序。

      @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 回答