0

コントローラーのインデックス アクションに日付条件を追加しようとしています。

    @events = Event.where("date" => Date.today.to_s).order("date").page(params[:page]).per_page(5)

今日の日付以上の日付値を持つイベントのみをビューに表示しようとしています。たとえば、イベントの日付値が 2013-05-13 の場合、そのイベントは既に発生しており、今日の日付以降の日付値を持つイベントのみを表示する必要があるため、表示する必要はありません。

問題は、インデックス ビューがイベントを返さないことです。日付値が 2013-05-30 の を作成したため、動作するはずです。何か案は?

前もって感謝します

4

2 に答える 2

0

これを試して:

モデルでは、次のようなスコープを使用します。

 scope :recent_event, lambda { where('date >= ?', Date.today ) }

次に、コントローラーに書き込みます

@events = Event.recent_event.order("date").page(params[:page]).per_page(5)
于 2013-05-15T04:39:28.877 に答える
0

これは実際には、日付が今日と等しいすべてのものを返します。

Event.where("date" => Date.today.to_s)

代わりにおそらく必要なのは次のとおりです。

Event.where("date >= ?", Date.today)

ActiveRecord は日付を に補間します?。また、電話をかける必要はありませんto_s。ActiveRecord が日付を指定します。

于 2013-05-15T04:39:52.717 に答える