我似乎找不到使用Mongoid/Rails进行日期范围查询的任何内容.以下是我尝试的一些查询(大约100个其他查询).如果它返回任何内容,它总是忽略'end_date'.两个日期都是日期时间......
all(:conditions => {:created_at => start_date.to_datetime..end_date.to_datetime})
Run Code Online (Sandbox Code Playgroud)
结果是:
NoMethodError: undefined method `to_i' for Tue, 26 Apr 2011 00:00:00 +0000..Fri, 06 May 2011 00:00:00 +0000:Range
Run Code Online (Sandbox Code Playgroud)
另一个例子...
where(:created_at => {'$gte' => start_date,'$lt' => end_date})
Run Code Online (Sandbox Code Playgroud)
导致查询成功,但忽略结束日期.结果在开始日期之后正确返回,但不受结束日期的限制.
几天来我一直在研究这个问题但无济于事.在论坛或IRC网上帮助不大.
很想知道我做错了什么:)
我试图为给定用户的每日购买金额加总.@dates是一个包含31个日期的数组.我需要find条件来比较数组中的日期和购买的created_at日期.我在下面做的比较create_at列的确切DateTime.我需要它来看一天本身,而不是DateTime.
我怎么写这个,所以created_at介于数组的日期之间?
<% @dates.each do |date| %>
<td><%= current_user.purchases.sum(:amount, :conditions => ["created_at = ?", date]) %></td>
<% end %>
Run Code Online (Sandbox Code Playgroud)