我想在Rails模型中初始化一个实例变量,该实例变量将保存一个数组,并且希望在模型中的其他方法中访问此变量。我尝试了这个:
class Participant < ActiveRecord::Base
@possible_statuses = [
'exists',
'paired',
'quiz_finished',
'quiz_results_seen',
'money_sent'
]
def statuses
@possible_statuses
end
但是,当我尝试使用Rails控制台进行以下操作时:
Participant.first.statuses
我归零了:(
为什么会这样?
有没有办法实现我要完成的目标?
最佳答案
我建议在这种情况下使用常量:
class Participant < ActiveRecord::Base
STATUSES = [
'exists',
'paired',
'quiz_finished',
'quiz_results_seen',
'money_sent'
]
如果要从内部类访问该数组,只需执行
STATUSES
,从外部类使用Participant::STATUSES