日付範囲に基づいていくつかの結果を表示する Rails アプリケーションがあります。日付を設定するためにいくつかのグローバル変数を使用しています。私のコードは以下のようになります:
#index.html.erb
<td>From: <%= $from %></td>
<td>To: <%= $to - 1.day%></td>
#controller
if (params[:first] || params[:next] || params[:previous])
if params[:first]
$from = Date.today - 7.day
$to = Date.today + 1.day
end
if params[:next]
$from = $from - 7.day
$to = $to - 7.day
end
if params[:previous]
if $to != Date.today + 1.day
$to = $to + 7.day
$from = $from + 7.day
end
end
end
このコードは正常に動作しているように見えますが、複数のマシンからアプリケーションにアクセスすると、グローバル変数がインスタンスごとに一意ではないため、混乱します。
そこで、グローバル変数の代わりに @variable (インスタンス変数) を使用しようとしました。しかし、ビューからページを送信するたびに、すべての変数が NULL にリセットされ、値がコントローラーに保持されません。ここで問題に対処するための指針を誰かが教えてくれませんか。