根据Bundler网站,使用Bundler.require
消除了在类顶部明确要求Gems的需要。具体来说,该网站说,
“如果你有很多依赖项,你可能想说”需要我的Gemfile中的所有gems“。为此,请在require'bundler / setup之后立即输入以下代码“:
Bundler.require(:default)"
当我这样做并删除我的类文件顶部的依赖项时,事情就会中断。例如,从应用程序类中删除以下语句:
"require hpricot"
会导致以下错误
NoMethodError: undefined method `Hpricot' for #<IndexBuilder:0x000000016365e0>
即使我的Rakefile说,
"Bundler.require(:default, environment.to_s)"
我在我的Gemfile中列出了Hpricot。
对我在这里做错了什么的想法?我正在调用我的Rakefile顶部的'require bundler/setup'
,因为他们说我应该这样做。
--- --- EDIT
感谢您的回复。我的Gem文件如下;我在这里删除了空格只是为了节省空间:
ruby'1.9.3'
gem'rake'
gem'require_all'
gem'ruby-progressbar'
gem'hpricot'
正在执行'require'的文件 -
要求'open-uri'
类IndexBuilder
#presumes source是一个包含网络链接歌曲列表的网址。 def build(来源) data = Array.new fetch(source).search(“// a”)。每个都做| a | song = Song.new(a.inner_html,a.to_s) 数据&lt;&lt;歌曲 结束 Index.new(数据) 端
def fetch(来源) 打开(来源){| f | Hpricot(f)} 端
私人:获取
端