私のアプリケーションでは、最も近い日付イベントをデフォルトとする現在のイベントは1つだけです。このイベントをさまざまな場所で取得する必要があります。変更しないため、キャッシュするのが理にかなっています。私に知られているそれをする2つの方法があります:クラス変数RailsモデルのVS定数
class Event < ActiveRecord::Base
CURRENT_EVENT = Event.where('starts_on >= ?', Time.now).
order('starts_on ASC').limit(1).first
# OR
def self.current_event
@@current_event ||= Event.where('starts_on >= ?', Time.now).
order('starts_on ASC').limit(1).first
end
end
どれが最高でしょうか?または他の選択肢? @@ class変数を使うのはスレッドセーフではないのでお勧めしません。