2013-08-11 6 views
0

내 레일 애플 리케이션 (Ruby 2.0.0p247/Rails 3.2.13)에서 settingslogic 보석을 사용하고 있습니다.동적 설정 로직 설정

중첩되지 않은 설정을 동적으로 변경할 수 있습니다.

#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 

내가 잘못하고있는 중이 야 무엇을?

답변

1

ruby ​​& 레일의 버전을 잘 모르겠다. 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 
: 방법 기반의 접근이 파일에서 값을 반환하고, 업데이트를하지 않은 상태/설정 중첩 된 값의 해시 기반의 접근을 예상 값을 반환 - 나는 비슷한 문제를 경험했다

github의 문제 목록을 기반으로하는 보석의 버그가 중첩 된 속성을 가진 많은 것 중 하나 인 것으로 보입니다.

+0

감사합니다. Joe. 내 질문에 중첩이 틀렸어. 미안해. 하지만 당신의 대답은 제 관찰을 확인시켜줍니다. 나는 github에 버그를 제기 할 것이다. –

+0

[github에 제출 된 버그] (https://github.com/binarylogic/settingslogic/issues/57) –