Chr*_*len 13 ruby-on-rails date range
我正试图找出从rails查询日期范围的最佳方法...我在Google上查看但不确定如何使用此语法.
我有一个具有各种事件的模型,我想在我的查找条件中添加一个警告,该警告应该只显示字段:st_date是今天或更晚的事件,实际上只显示当前数据,没有发生在今天之前.
我遇到了一个问题,因为我没有结束日期来停止查询,我想查询从今天到下个月的所有内容.
我在想类似的东西
@events = Event.find(:all, :conditions => ["start_date between ? and ?",
date.Today, date.next_month.beginning_of_month])
Run Code Online (Sandbox Code Playgroud)
但我得到错误undefined局部变量或方法'日期'......
我是否需要做任何特别的事情才能使用Date类?或者我的查询语法有问题吗?我真的很感激任何帮助.
bra*_*rad 16
你想要Date.today,而不是date.today.你正在做的事情没有错,你只是没有正确引用日期类
而且它会 Date.today.next_month.beginning_of_month
mrw*_*ade 14
我会更进一步,在模型中定义一个范围以供重用.
# rails 3 example:
# app/models/event.rb
scope :upcoming, lambda {
where("start_date between ? and ?", Date.today, Date.today.next_month.beginning_of_month)
}
# app/controllers/some_controller.rb
@events = Event.upcoming
Run Code Online (Sandbox Code Playgroud)
在Rails 3中还有关于范围的Railscasts剧集:http:
//railscasts.com/episodes/202-active-record-queries-in-rails-3