Techioz Blog

Ruby on Rails - パラメータに基づいて次の日付と前の日付を検索します

概要

アプリケーションに activity_logs を追加し、URL に param_date を与えることに基づいて @activities を表示します。

私のリンク/パスは次のようになります。

http://localhost:3000/users/activity_logs?param_date=2016-09-12。

私は同じページに次の日と前の日を追加するのが好きです。 param_date の日付に基づいて翌日と前日を見つけるにはどうすればよいですか。

例: = link_to ‘翌日’, activity_logs_path(param_date: date)

基本的に、param_date が 2016-09-30 の場合、次の日は 2016-10-01、前の日は 2016-09-29 になります。

解決策

Ruby の Date クラスには next_day メソッドと prev_day メソッドがあります。

コントローラーのパラメータから日付を解析します

@date = Date.parse(params[:param_date])

次に、このようにビュー内にリンクを生成します

link_to('Next day',     activity_logs_path(param_date: @date.next_day))

link_to('Previous day', activity_logs_path(param_date: @date.prev_day))