Rails 4,授权问题

时间:2014-03-28 02:07:51

标签: ruby-on-rails devise omniauth declarative-authorization warden

我正在使用Rails 4,包括设计,监护,声明授权和omniauth。

当我运行rails服务器尝试测试我的初始设置时,我收到一条包含所有初始页面的错误消息。

当我输入localhost:3000时 - 我收到一条错误,上面写着“无效策略some_external_strategy”,错误将我引导到应用程序控制器 - 使用此方法:

 def set_current_user
 Authorization.current_user = current_user
 end

对于作为脚手架生成的一部分自动创建的每个视图,我都会遇到相同的错误。

当我尝试导航到localhost:3000 / home / index时,我收到一条错误消息:“没有路由匹配[GET]”/ home / index“

我的路线文件在第一行中有以下内容:

root :to => 'home#index'

我有一个home_controller.rb,其中包含以下代码:

class HomeController < ApplicationController

def index

end
end

对于如何解决这个问题的任何想法或建议都将非常感激。

非常感谢提前。

2 个答案:

答案 0 :(得分:0)

根据我的理解设计,宝石对于身份验证而言非常舒适,而不是授权。如果您想进行用户授权,我建议您使用 CanCan gem,而不是使用设计。这很简单&amp;有效的宝石用于授权目的。

答案 1 :(得分:0)

您是否修改了config/initializers/devise.rb?当我取消注释Warden配置部分时,我遇到了同样的错误,其中包括以下几行:

config.warden do |manager|
    manager.intercept_401 = false
    manager.default_strategies(scope: :user).unshift :some_external_strategy
end