在Rails 3中需要rack / openid的问题
我安装插件open_id_authentication并出现此错误:
/usr/lib/ruby/gems/1.9.1/gems/activesupport-3.0.0.beta/lib/active_support/dependencies.rb:167:in `require': no such file to load -- rack/openid (LoadError)
当我尝试启动rails server
实际上,在我的系统中安装了rack-openid,我可以从irb加载它:
irb(main):001:0> require 'rack/openid' => true
我尝试像使用ruby-openid一样添加hack到Gemfile,但它没有帮助:
gem "ruby-openid", :require => "openid" gem "rack-openid", :require => "rack/openid"
我也试过了
gem "ruby-openid", :require => "rack/openid"
但:
/usr/lib/ruby/gems/1.9.1/gems/bundler-0.9.7/lib/bundler/runtime.rb:38:in `require': no such file to load -- rack/openid (LoadError)
在rails 2.3.5 app中没有这个问题,我无法理解为什么它会在Rails 3中发生。
问题是这个代码位于插件的init.rb顶部
if Rails.version < '3' config.gem 'rack-openid', :lib => 'rack/openid', :version => '>=0.2.1' end
Bundler似乎没有接受gem的要求,所以你错过了rack-openid
gem。
解决方案是将以下内容添加到Gemfile
以代替ruby-openid
。 ( rack-openid
取决于ruby-openid
但gem知道这一点,并将根据需要安装它)
gem 'rack-openid', '>=0.2.1', :require => 'rack/openid'
不要忘记在更新Gemfile后运行bundle install
。
我理解你的问题,因为ruby openID可能非常不稳定,原因很少..我在工作时安装它,但无法在家中使用它! 我会给我的工作食谱:
我有插件(仅限)
authlogic_openid来自: http : //github.com/binarylogic/authlogic_openid
open-id来自: http : //github.com/senthilnambi/open-id
gem:
authlogic(2.1.3)
authlogic-oid(1.0.4)
openid(0.0.1)
机架(1.0.1)
rack-openid(1.0.1)
ruby-openid(2.1.7)
在环境(仅) :
config.gem“authlogic”
GL!
gem "rack-openid", :require => "rack/openid"