我正在运行ruby 1.9.2p18,Devise(1.3.4),Rails(3.0.4)和Omniauth(0.2.6)。
目前我的网页正在使用Devise进行身份验证,并且工作正常。
我正在尝试添加facebook身份验证。我按照https://github.com/plataformatec/devise/wiki/OmniAuth%3a-Overview的说明进行了操作。
当我做localhost:3000时我得到
LoadError (no such file to load -- omniauth/core):
app/models/user.rb:3:in `<class:User>'
app/models/user.rb:1:in `<top (required)>'
config/routes.rb:6:in `block in <top (required)>'
config/routes.rb:1:in `<top (required)>'
如果有时再次刷新页面
ActionController::RoutingError (No route matches "/")
我查看并查看.rvm / gems / ruby-1.9.2-p180 / gems / omniauth-0.2.6我的目录为oa-core /但不是core /。
我真的很感激帮助,我不知道如何调试这个!
答案 0 :(得分:1)
2个错误不同。
<强> 1。错误:
LoadError (no such file to load -- omniauth/core)
您需要在Gemfile中添加omniauth并运行“bundle install”。如果你有问题,这个Railscast可能会有所帮助: Railscasts Omniauth 1
另见Railscasts上的2个Devise视频。
<强> 2。错误:强>
ActionController::RoutingError (No route matches "/")
它表示您尚未将应用配置为拥有主根。主根与“/”匹配 - 首先选择您希望作为登陆页面或主页的页面。如果你还没有创建一个,那就去做吧 - 接下来你可以通过“rake routes”找到shell中所有命名的路由 - 然后打开config / routes.rb文件并添加main root:
root :to => 'welcome#index'
将“welcome #index”替换为“your_chosen_controllers_name#chosen_method”
不要添加由Devise创建的命名路由,因为它最终会出现无限循环(“堆栈级别太深”错误)。
请注意,如果您之前没有使用Rails,Devise wiki建议不要使用Devise。在这种情况下,我强烈建议结帐Rails3.1新的has_secure_password?方法。
HTH