试图从日期为今天的数据库中获取行

时间:2013-10-03 20:11:34

标签: ruby-on-rails ruby

出于某种原因,我的@sub_opps导致:  ActiveRecord的::关系:: ActiveRecord_Relation_SubOpp。

这意味着我的.each语句显然没有产生任何结果。我已经尝试过多种方法,但无法找到正确的调整来实现这一目标。

知道为什么吗?

def index
    @sub_opps = SubOpp.where("status = ? AND sub_time = ?", false, Date.today)
end

为了澄清一些事情,sub_time是我的SubOpp模型​​中的一列,是datetime。状态是布尔值。所以,我试图显示状态为false且其日期时间为今天的SubOpp行。

以下是我的观点。

<% @sub_opps.each do |sub_opp| %>
  <%= render sub_opp, :sub_opp => :sub_opp %>
<% end %>

由于

2 个答案:

答案 0 :(得分:0)

我认为where的语法已关闭...试试这个:

@sub_opps = SubOpp.where("status = ? AND sub_time = ?", false, Date.today)

答案 1 :(得分:0)

我想出了这个问题。问题是模型中的日期时间列包含日期和时间,因此尝试查询此模型中的行,其日期时间等于今天的日期不起作用。为了解决这个问题,我在控制器中执行了以下操作。

@sub_opps = SubOpp.where('sub_time BETWEEN ? AND ?', DateTime.now.beginning_of_day, DateTime.now.end_of_day).all

这抓住了所有SubOpp,其中时间在一天的开始和结束之间。同样,基本问题是日期时间是日期和时间,因此仅比较日期不会产生任何结果。谢谢你的帮助!

相关问题