gpt4 book ai didi

ruby-on-rails - rails : constant in initializer

转载 作者:行者123 更新时间:2023-12-03 15:52:33 25 4
gpt4 key购买 nike

我想在初始化程序中保留常量并在模型中使用它,例如:

模型:

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

我错过了什么?谢谢

最佳答案

尝试

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关于自定义配置选项

关于ruby-on-rails - rails : constant in initializer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25641315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com