Problema con richiede cremagliera / OpenID in Rails 3 [nativo richiede lavoro correttamente]
-
22-09-2019 - |
Domanda
I installare il plugin open_id_authentication e hanno questo errore:
/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 provo ad iniziare rails server
In realtà, rack OpenID installato nel mio sistema e posso caricarlo da IRB:
irb(main):001:0> require 'rack/openid'
=> true
Ho provato ad aggiungere hack per Gemfile come ho fatto con rubino OpenID, ma did't aiuto:
gem "ruby-openid", :require => "openid"
gem "rack-openid", :require => "rack/openid"
Ho anche provato
gem "ruby-openid", :require => "rack/openid"
ma
/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)
In rotaie 2.3.5 app non c'è questo problema e non riesco a capire perchè accade in Rails 3.
Soluzione
Il problema è questo codice nella parte superiore della init.rb del plugin
if Rails.version < '3'
config.gem 'rack-openid', :lib => 'rack/openid', :version => '>=0.2.1'
end
Bundler non sembra prendere sul requisito gemma in modo da non trovi la gemma rack-openid
.
La soluzione è quella di aggiungere la seguente al vostro Gemfile
al posto di ruby-openid
. (rack-openid
dipende ruby-openid
ma gemme è consapevole di questo e lo installerà in base alle esigenze)
gem 'rack-openid', '>=0.2.1', :require => 'rack/openid'
Non dimenticare di eseguire bundle install
dopo l'aggiornamento del Gemfile.
Altri suggerimenti
I capire il vostro problema in quanto rubino OpenID può essere molto irregolare, per piccole ragioni .. ho installato sul posto di lavoro, ma non riesco a farlo a casa! Darò la mia ricetta di lavoro:
Ho la Plugin (SOLO)
authlogic_openid da: http://github.com/binarylogic/authlogic_openid
open-id da: http://github.com/senthilnambi/open-id
gemme:
Authlogic (2.1.3)
Authlogic-OID (1.0.4)
OpenID (0.0.1)
cremagliera (1.0.1)
rack OpenID (1.0.1)
ruby-OpenID (2.1.7)
Al ambiente (SOLO) :
config.gem "Authlogic"
GL!
gem "rack-openid", :require => "rack/openid"