0

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

这意味着我的 .each 语句显然不会产生任何结果。我尝试了多种方法,但找不到正确的调整来完成这项工作。

知道为什么吗?

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

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

这是我的看法。

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

谢谢

4

2 回答 2

0

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

@sub_opps = SubOpp.where("status = ? AND sub_time = ?", false, Date.today)
于 2013-10-03T20:16:02.947 回答
0

我弄清楚了这个问题。问题是模型中的日期时间列同时包含日期和时间,因此尝试从该模型中查询日期时间等于今天日期的行是行不通的。为了解决这个问题,我在控制器中执行了以下操作。

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

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

于 2013-10-03T20:59:44.847 回答