我在Ruby中試圖做的是相當於PHP的include或require語句。Ruby加載/需要文件
在PHP中,當您包含或需要文件時,包含文件中的任何PHP代碼都會執行,並且全局範圍的變量可以用於包含include的文件。
在Ruby中,我有這樣的代碼;
# include file snippet
config = {'base_url' => 'http://devtest.com/'}
# main file
Dir.foreach(BASE_ROOT_PATH + 'config') do |file|
if !(file == '.' || file == '..')
filepath = BASE_ROOT_PATH + 'config/' + file
load filepath
end
end
config.inspect
我遇到的問題是,當我運行主文件時,它總是出錯與此錯誤;
/home/skittles/devtest/bootstrap.rb:24:in `<top (required)>': undefined local variable or method `config' for main:Object (NameError)
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from index.rb:27:in `<main>'
我知道,它的拉動在該文件中,因爲它沒有拋出任何錯誤。 我試過加載&要求,兩者都有相同的錯誤。我嘗試config.inspect並放置配置,仍然是相同的錯誤。
這幾乎就像包含的文件沒有執行它裏面的代碼。這是怎麼回事,或者我只是做錯了什麼?
感謝
我可以問你想要完成什麼嗎?以錯誤的順序加載所有配置文件是導致此錯誤的原因。您通常只會加載'environment.rb'文件,並且會加載其他所有內容 – PinnyM 2012-02-01 14:58:48
OP沒有說他正在使用Rails ... – Chowlett 2012-02-01 15:00:33
http://stackoverflow.com/questions/2699324/ruby-irb - 要求和範圍 – Chowlett 2012-02-01 15:04:32