2011-01-13 27 views
0

考えられる原因は?ファイルが必要な理由は何ですか?実行されなかった理由

#wordlist.rb 
code_words = { 
'starmonkeys' => 'Phil and Pete, those prickly chancellors of the New Reich', 
'catapult' => 'chucky go-go', 'firebomb' => 'Heat-Assisted Living', 
'Nigeria' => "Ny and Jerry's Dry Cleaning (with Donuts)", 
'Put the kabosh on' => 'Put the cable box on' 
} 


irb(main):001:0> require 'wordlist.rb' 
=> true 
irb(main):002:0> code_words 
NameError: undefined local variable or method `code_words' for main:Object 
    from (irb):2 
    from :0 

答えて

3

Kernel#loadのためのドキュメントは、いかなる状況で

がロードされたファイル内の任意のローカル 変数はロード環境に 伝播されますと言います。

と同じように、グローバルまたは定数は正常です。

+0

しかし、このコードは痛烈なルビーの中にあります....うーん、彼らは間違っていますか? – wizztjh

2

定数またはグローバル変数として宣言します。 code_wordsはrequireのスコープ内に存在し、ロードされた後はアクセス不可能になります。

+1

または、インスタンス変数。 '@code_words = ... ' – Phrogz

関連する問題