Ruby On Rails如何在两个日期之间约束我的索引

时间:2014-03-08 00:10:32

标签: ruby-on-rails-4

我正在将我的一个应用程序从PHP转换为rails 4,并且我坚持让我的索引视图默认为约束日期,并且还接受来自约束的参数的开始和结束日期。

我的PHP中的查询如下所示:

$query = " SELECT * FROM EVENTS WHERE EVENT_DATE >= '$start' AND EVENT_DATE <= '$end' ORDER BY EVENT_DATE ASC "

所以这可能类似于活动记录最终需要给我的东西。

2 个答案:

答案 0 :(得分:1)

您可以将scope放入模型中,最有可能放在event.rb中。

  scope :between_dates , -> (start_date,end_date) { where("'EVENT_DATE' >= ? AND 'EVENT_DATE' <= ?", start_date,end_date).order("'EVENT_DATE' ASC") }

然后你可以在索引控制器中调用类似的东西

def index 
  @events = Event.between_dates(1.day.ago, 2.day.ago)
end

PS:上述方法将生成欲望查询。

答案 1 :(得分:1)

Event.where('event_date >= ? and event_date <= ?', start_date, end_date).order('event_date ASC')

其中start_date和end_date - 是您的日期,而事件 - 是您的事件模型