我想在初始化程序中保留常量并在模型中使用它:
模型:
class AssessmentProcedure < ActiveRecord::Base
def default_values
self.self_estimation_weight ||= PROCEDURES_CONFIG['self_estimation_weight']
self.parent_estimation_weight ||= PROCEDURES_CONFIG['parent_estimation_weight']
end
end
配置/初始化/ constants.rb
PROCEDURES_CONFIG = YAML.load_file("#{::Rails.root}/config/assessment_procedures.yml")
问题是当我使用它时,我得到一个例外:
NameError: uninitialized constant AssessmentProcedure::PROCEDURES_CONFIG
我错过了什么?感谢
答案 0 :(得分:1)
尝试
self.self_estimation_weight ||= ::PROCEDURES_CONFIG['self_estimation_weight']
它将取消常量并使用全局命名空间
在Rail 4.2中有一种更清洁的方式
# config/environments/production.rb
config.x.procedures_config.self_estimation_weight = 4711
有关自定义配置选项的信息,请参阅http://edgeguides.rubyonrails.org/4_2_release_notes.html