Problema com requer rack/openId em trilhos 3 [O nativo requer trabalho corretamente
-
22-09-2019 - |
Pergunta
Eu instalo o plugin open_id_authentication e tenho este erro:
/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)
Quando tento começar rails server
Na verdade, o Rack-Openid instalado no meu sistema e eu posso carregá-lo no IRB:
irb(main):001:0> require 'rack/openid'
=> true
Tentei adicionar hack ao GemFile como fiz com o rubi-openid, mas não ajudou:
gem "ruby-openid", :require => "openid"
gem "rack-openid", :require => "rack/openid"
Eu também tentei
gem "ruby-openid", :require => "rack/openid"
mas:
/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)
No aplicativo Rails 2.3.5, não há esse problema e não consigo entender por que acontece no Rails 3.
Solução
O problema é este código na parte superior do init.rb do plugin
if Rails.version < '3'
config.gem 'rack-openid', :lib => 'rack/openid', :version => '>=0.2.1'
end
Bundler parece não entender o requisito da GEM, então você está perdendo o rack-openid
gema.
A solução é adicionar o seguinte ao seu Gemfile
no lugar de ruby-openid
. (rack-openid
depende de ruby-openid
Mas Gems está ciente disso e o instalará conforme necessário)
gem 'rack-openid', '>=0.2.1', :require => 'rack/openid'
Não se esqueça de correr bundle install
Depois de atualizar seu GemFile.
Outras dicas
Eu entendo seu problema, já que o Ruby OpenID pode ser muito irregular, por pequenas razões. Eu o instalei no trabalho, mas não consigo acertar em casa! Vou dar minha receita de trabalho:
Eu tenho o Plugins (somente)
authlogic_openid de: http://github.com/binarylogic/authlogic_openid
Open-ID de: http://github.com/senthilnambi/open-id
o Gems:
AuthLogic (2.1.3)
AuthLogic-Oid (1.0.4)
OpenId (0.0.1)
rack (1.0.1)
Rack-Openid (1.0.1)
Rubi-Openid (2.1.7)
No Ambiente (apenas):
config.gem "authlogic"
GL!
gem "rack-openid", :require => "rack/openid"