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 モデルの列であり、datetime です。ステータスはブール値です。そのため、ステータスが false で日時が今日の SubOpp 行を表示しようとしています。

これが私の見解です。

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

ありがとう

4

2 に答える 2

0

私は問題を理解しました。問題は、モデルの datetime 列に日付と時刻の両方が含まれているため、このモデルから datetime が今日の日付に等しい行をクエリしようとしてもうまくいかないことです。これを解決するために、コントローラーで次のことを行いました。

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

これにより、時刻が 1 日の始まりと終わりの間にあるすべての SubOpp が取得されます。繰り返しますが、根底にある問題は datetime が日付と時刻であるため、日付だけを比較しても結果は得られませんでした。助けてくれてありがとう!

于 2013-10-03T20:59:44.847 に答える
0

あなたの構文はオフだと思いますwhere...これを試してください:

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