Rails列出特定日期的记录

时间:2012-12-12 16:48:16

标签: ruby-on-rails

我正在尝试创建一个index.html.erb文件,该文件将列出名为events的表中的记录。我正在尝试为特定日期选择记录。 starts_at是表中的日期时间字段。例如,我试图通过以下方式获取本周一的所有记录:

<% @events = Event.where('starts_at.to_date = ?', DateTime.now.beginning_of_week.to_date) each do |event| %>

但是,我不应该得到记录。

不喜欢的是每个陈述。

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

我相信你错过了一个平等的条件符号。

<% @events = Event.where('starts_at.to_date = ?', DateTime.now.beginning_of_week.to_date) each do |event| %>

答案 1 :(得分:0)

您可以使用AREL。

@date = DateTime.now.beginning_of_week
@events = Event.where(starts_at: @date..@date.end_of_day)

这应该在你的控制器中。不建议在您的视图中进行数据库查询(不是非常MVC!)。

答案 2 :(得分:0)

Event.find(:all, :conditions => ["DATE(starts_at) = DATE(?)", DateTime.now.beginning_of_week])

Event.where("DATE(starts_at) = DATE(?)", DateTime.now.beginning_of_week)