我想在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

10-05 23:16