在我的應用程序中,只能有一個當前事件默認爲最近的日期事件。我需要在各個地方檢索這個事件,因爲它沒有改變,所以緩存它是有意義的。有兩種方法可以讓我知道: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
哪一個會是最好的?還是有其他的選擇?我知道不建議使用@@類變量,因爲它們不是線程安全的。