Ruby on rails 捆扎机&x2B;Rails3.1:使用绑定器和加载路径从github存储库安装gems

Ruby on rails 捆扎机&x2B;Rails3.1:使用绑定器和加载路径从github存储库安装gems,ruby-on-rails,ruby,bundler,Ruby On Rails,Ruby,Bundler,我有一个Gem,我需要使用bundler从github安装它,我将它添加到我的Gem文件中 gem 'attr_encrypted', :git => "git://github.com/danpal/attr_encrypted.git" 捆绑安装它: $bundle show attr_encrypted /Users/dani/.rvm/gems/ruby-1.9.2-p290@railsrc/bundler/gems/attr_encrypted-05bbe677eae6 问题

我有一个Gem,我需要使用bundler从github安装它,我将它添加到我的Gem文件中

gem 'attr_encrypted', :git => "git://github.com/danpal/attr_encrypted.git"
捆绑安装它:

$bundle show attr_encrypted
/Users/dani/.rvm/gems/ruby-1.9.2-p290@railsrc/bundler/gems/attr_encrypted-05bbe677eae6
问题是rubygems看不到它:

因为Rubygems缺乏处理git中宝石的能力,所以任何宝石 从git存储库安装的将不会显示在gem列表中。他们 但是,在运行
Bundler.setup
后将可用

现在,如果我运行bundler/setup,它确实可以工作:

DANIELs-MacBook-Air-2:authy-SSO dani$ irb
ruby-1.9.2-p290 :001 > require 'attr_encrypted'
LoadError: no such file to load -- attr_encrypted
    from /Users/dani/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /Users/dani/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from (irb):1
    from /Users/dani/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `<main>'
ruby-1.9.2-p290 :002 > require 'bundler/setup'
 => true
ruby-1.9.2-p290 :003 > require 'attr_encrypted'
 => true
DANIELs-MacBook-Air-2:authy SSO dani$irb
ruby-1.9.2-p290:001>要求“属性加密”
LoadError:没有要加载的文件--attr\u加密
from/Users/dani/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site\u ruby/1.9.1/rubygems/custom\u require.rb:36:in'require'
from/Users/dani/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site\u ruby/1.9.1/rubygems/custom\u require.rb:36:in'require'
来自(irb):1
from/Users/dani/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in`'
ruby-1.9.2-p290:002>要求“捆绑机/设置”
=>正确
ruby-1.9.2-p290:003>要求“属性加密”
=>正确

问题是,我应该在哪里将此加载路径添加到rails3.1,以便从Bundler获得的所有gem都自动位于加载路径中?

Rails 3应用程序在启动时自动加载Bundler,从而使所有gem都可用于Rails的加载路径。加载绑定器所需的代码将自动生成在
config/boot.rb
文件中。您可以使用
rails控制台
启动rails控制台,并将看到已加载
attr_encrypted

如果您需要一个具有调整加载路径的不同进程(例如,一个简单的ruby脚本、一个irb会话或一个rake任务),您可以使用
bundle exec
启动它,它将调整进程的加载路径,然后启动它。您可以像
bundle exec irb
一样使用它

您应该始终使用
bundle exec
启动存在bundler的脚本,只有这样才能确保使用正确的gem和版本,并且所有依赖项都可用。有关更多信息,请参阅或