Zar*_*doz 3 ruby gem ruby-on-rails bundler
我刚刚创建了一个新的gem(使用bundler)并希望添加Active Record支持.所以我加入s.add_dependency "activerecord", "~> 3.0"了我的gemspec.然后我使用Bundler.setup和Bundler.require,并认为我现在可以访问Active Record,但我没有.我必须明确使用require "active_record".知道为什么Bundler.require在这种情况下对我不起作用吗?
Dav*_*lan 12
首先,如果您要包装宝石,请不要使用Bundler.require.Bundler.require适用于非宝石的应用.
在.gemspec,指定已部署gem的依赖关系.
在您的帐号中Gemfile,添加一行gemspec以自动包含您.gemspec在其中列出的依赖项Gemfile.
您也可以选择为dev和test创建gem组.
在您的代码中,显式地显示require您需要的任何库.
我今天在这里失去了几个小时,所以我希望这会有所帮助.
其次,虽然ActiveRecord gem被称为"activerecord",但lib被称为"active_record".这就是你需要的Gemfile.
gem 'activerecord', :require => "active_record"
Run Code Online (Sandbox Code Playgroud)
除非您包含该:require选项,否则ActiveRecord将无法正确加载,在您尝试使用它之前您不会知道它.