1

いくつかのグローバル変数を使用して、日付に基づいてページにいくつかの結果を表示する Rails アプリケーションがあります。日付範囲変数はグローバルです。ここでの問題は、複数のユーザーが同時にアプリケーションにアクセスする場合です。グローバル変数は共有され、アプリケーションのインスタンスごとに一意ではありません。

アプリケーションの各インスタンスの変数を処理するための適切な方向性を教えてもらえますか?

4

1 に答える 1

3

グローバル (文字通り絶対に使用してはならない) の代わりに、インスタンス変数を使用する必要があります。ここでは、日付範囲内の注文を検索するように設定されています

class OrdersController < ActionController::Base
  def index
    @start_date = params[:start_date] || 30.days.ago
    @end_date   = params[:end_date] || 30.days.ago
    @orders =  Order.where("start_date >= ?", @start_date).where("end_date <= ?", @end_date)
  end
end

注: 文字通り、Web 上にあるすべての例は上記のスタイルを使用し、ruby グローバル変数は使用しません。

于 2013-03-27T21:36:48.243 に答える