Ruby on rails 已初始化常量Patientinfo::PATIENT\u哈希。警告:此处是先前定义的“患者\u哈希”

Ruby on rails 已初始化常量Patientinfo::PATIENT\u哈希。警告:此处是先前定义的“患者\u哈希”,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我用以下代码创建了一个关注patientinfo module Patientinfo extend ActiveSupport::Concern included do PATIENT_HASH = { '0' => 'Test1', '1' => 'Test2', '2' => 'Test3', '3' => 'Test4' }.freeze def patient_map(patie

我用以下代码创建了一个关注patientinfo

module Patientinfo
  extend ActiveSupport::Concern

  included do
    PATIENT_HASH = {
      '0' => 'Test1',
      '1' => 'Test2',
      '2' => 'Test3',
      '3' => 'Test4'
    }.freeze

    def patient_map(patient_number)
      PATIENT_HASH[patient_number]
    end
  end
end
现在,当我启动rails服务器时,我得到了标题中的错误。
知道为什么吗?

如果将此模块包含在多个类中,Include将再次运行同一块,重新定义常量,从而导致冲突。是否将此模块包含在多个类中?

是否确定没有在其他地方定义该变量?或者您正在使用“活动管理”?患者哈希仅在Patientinfo concernYes中定义。我称之为两种不同的模式,这就是问题所在。当第二个类包含此模块时,常数已经定义。如果是这样,您能接受此作为答案吗?