0

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

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

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

它不喜欢的一件事是 each 语句。

在此先感谢您的帮助!

4

3 回答 3

0

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

<% @events = Event.where('starts_at.to_date = ?', DateTime.now.beginning_of_week.to_date) each do |event| %>
于 2012-12-12T16:55:59.830 回答
0

您可以使用 AREL。

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

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

于 2012-12-12T17:10:40.950 回答
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)
于 2012-12-12T17:58:22.360 回答