2012-09-23 2 views
0

ri Hash을 실행하면 stringify_keys 방법이 일부 목록에 인스턴스 메소드로 표시되며 각 목록은 다른 보석 또는 보석 버전과 연결되어있는 것으로 보입니다.해시 # stringify_keys undefined

하지만이 IRB 쉘에서 호출하려고 할 때, 실패는 : 나는 IRB에 h.methods.sort을 실행할 때

또한
irb(main):035:0> h 
=> {:this=>"this value", :that=>"that value"} 
irb(main):031:0> h.instance_of? Hash 
=> true 
irb(main):032:0> h.stringify_keys 
NoMethodError: undefined method `stringify_keys' for {:this=>"this value", :that=>"that value"}:Hash 
     from (irb):32 
     from /usr/local/bin/irb:12:in `<main>' 

, stringify_keys는 방법으로 표시되지 않습니다.

누군가 이러한 불일치를 설명 할 수 있습니까? 환경이 오래되었거나 Ruby 설명서에 대해 이해할 수없는 부분입니까?

답변

7

레일스 (ActiveSupport를 통해) 원숭이는 stringify_keys 방법을 Hash에 패치하므로 일반 세션에는 포함되지 않습니다. 당신은 말함으로써 핵심 확장을로드 할 수

require 'active_support/core_ext' 

개별 원숭이 패치를로드하는 방법에 대한 자세한 내용은 Active Support Core Extensions Guide를 참조하십시오.

+0

레일즈가 해시 용 'ri'문서에도이 파일을 추가합니까? –

+0

@ 마크 토마스 : 모르겠지만 누군가있을 수도 있습니다. 나는'ri'를 결코 사용하지 않습니다, 나는 항상 온라인 문서를 사용하거나 소스 코드를 읽어 내고 있습니다. –