0

我正在尝试向我的控制器索引操作添加一个日期条件:

    @events = Event.where("date" => Date.today.to_s).order("date").page(params[:page]).per_page(5)

我试图让我的视图只显示日期值大于或等于今天日期的事件。例如,如果事件的日期值为 2013-05-13,则不应显示该事件,因为该事件已经发生,并且仅应显示日期值为今天或更晚的事件。

问题是,索引视图没有返回任何事件,我创建了一个日期值为 2013-05-30 的事件,这意味着它应该可以工作。有任何想法吗?

提前致谢

4

2 回答 2

0

试试这个:

在您的模型中使用如下范围:

 scope :recent_event, lambda { where('date >= ?', Date.today ) }

然后在你的控制器中写

@events = Event.recent_event.order("date").page(params[:page]).per_page(5)
于 2013-05-15T04:39:28.877 回答
0

这实际上将返回日期等于今天的所有内容:

Event.where("date" => Date.today.to_s)

您可能想要的是:

Event.where("date >= ?", Date.today)

ActiveRecord 会将日期插入到?. 此外,您无需调用to_s它,ActiveRecord 将为您提供日期。

于 2013-05-15T04:39:52.717 回答