cra*_*aig 9 openid ruby-on-rails authlogic
我在使用Authlogic进行OpenId身份验证时遇到了困难.似乎问题出现在open_id_authentication插件的更改中.从我到目前为止所读到的,人们需要从使用宝石切换到使用插件.
以下是我为使Authlogic-OpenID集成工作所做的工作:
Mogrel未能启动,返回以下错误:
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- rack/openid (MissingSourceFile)
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/plugins/open_id_authentication/lib/open_id_authentication.rb:3
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/plugins/open_id_authentication/init.rb:5:in `evaluate_init_rb'
from ./script/../config/../vendor/rails/railties/lib/rails/plugin.rb:146:in `evaluate_init_rb'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnings'
from ./script/../config/../vendor/rails/railties/lib/rails/plugin.rb:142:in `evaluate_init_rb'
from ./script/../config/../vendor/rails/railties/lib/rails/plugin.rb:48:in `load'
from ./script/../config/../vendor/rails/railties/lib/rails/plugin/loader.rb:38:in `load_plugins'
from ./script/../config/../vendor/rails/railties/lib/rails/plugin/loader.rb:37:in `each'
from ./script/../config/../vendor/rails/railties/lib/rails/plugin/loader.rb:37:in `load_plugins'
from ./script/../config/../vendor/rails/railties/lib/initializer.rb:348:in `load_plugins'
from ./script/../config/../vendor/rails/railties/lib/initializer.rb:163:in `process'
from ./script/../config/../vendor/rails/railties/lib/initializer.rb:113:in `send'
from ./script/../config/../vendor/rails/railties/lib/initializer.rb:113:in `run'
from /Users/craibuc/NetBeansProjects/authlogic_example/config/environment.rb:13
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/railties/lib/commands/server.rb:84
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
from script/server:3
Run Code Online (Sandbox Code Playgroud)
我怀疑这与rack-openid宝石有关,但由于它依赖于ruby-openid宝石,所以当去掉ruby-openid宝石时它被移除了.也许这可以作为插件安装.
非常感谢任何有关此事的帮助 - 我即将放弃OpenId集成.
*ruby-openid(2.1.2)安装在/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8.我不确定这是否会影响任何事情.在任何情况下,我不知道如何卸载它或我应该.
**编辑**
似乎/Library/Ruby/Gems/1.8/gems目录中有许多宝石可能导致问题:
问题: - 为什么gem list命令没有列出这些宝石? - 为什么gem uninstall命令没有删除这些宝石?
不确定 OSX 上的工作原理,但在 Linux 中,如果我作为普通用户安装 gems,它们会被放入我的主目录中,如果我使用它们安装,sudo它们会进入系统目录。
我也遇到过 gem 的权限问题,并且必须GEM_PATH在 shell 中显式设置 a 以使 ruby 从特定位置加载 gem。
sudo gem list?/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8?编辑:
好吧,我会启动一个会话,看看当你明确地使用 gemirb时会发生什么。require
$ irb
> require 'authlogic'
> require 'authlogic-oid'
...
Run Code Online (Sandbox Code Playgroud)
编辑:
如果authlogic-oidgem 已安装,并且在运行时出现sudo gem list,请尝试以超级用户身份启动irb。如果您可以 require authlogic-oid,则存在权限问题:部分或全部 gem 文件是只读 root。
如果这不起作用,您可能遇到加载路径问题 - ruby 不知道在哪里寻找已安装的 gem。在这种情况下,您的authlogicgem 可能安装在与您的authlogic-oidgem 不同的位置。