我在我的Rails应用程序中使用设置逻辑 gem (Ruby2.0.0p247/ Rails 3.2.13)。
当设置不是嵌套时,我可以动态地更改它。
#config/settings.yml
defaults:&defaults
mysetting: 1
nested:
myothersetting: 2
Settings[:mysetting] = 10
Settings.mysetting # puts 10但是,我无法以相同的方式更改嵌套属性:
Settings[:nested][:myothersetting] = 20
Settings.nested.myothersetting # puts 2我做错了什么?
发布于 2013-08-11 19:18:30
我不知道您正在使用哪个版本的ruby & rails,但是我尝试使用与yaml文件类似的设置,并出现了一个错误的解析错误。我认为在它下面嵌套一些东西的键也不能有一个值。
尽管如此,我也经历过类似的行为:嵌套值集/返回预期值的基于哈希的访问器,而基于方法的访问器返回文件中的值,没有得到更新:
# config/settings.yml
defaults: &defaults
thing1: 1
thing2: 2
nest:
thing3: 3
development:
<<: *defaults
2.0.0p247 :001 > Settings[:nest][:thing3] = 30
=> 30
2.0.0p247 :002 > Settings[:nest][:thing3]
=> 30
2.0.0p247 :003 > Settings.nest.thing3
=> 3看起来这可能是gem中的一个bug,它基于github上的问题列表,似乎是具有嵌套属性的众多问题之一。
https://stackoverflow.com/questions/18175237
复制相似问题