我使用的是Omniauth + Devise身份验证系统,用户可以使用他的电子邮件+密码或他的Google+帐户注册。
现在我需要使用CanCanCan gem来检查正在登录的用户是否有权限进入“后”登录区域,但是我不知道我可以在哪里执行该条件,在哪个文件设计中存储“成功后重定向”登录功能?
发布于 2015-05-21 11:28:12
你必须设计注册控制器。
class RegistrationsController < Devise::RegistrationsController
protected
def after_sign_up_path_for(resource)
'/home' # your path to redirect after signup
end
end可以在abilities.rb文件中定义访问权限。
class Ability
include CanCan::Ability
def initialize(user)
user ||= user.new
# Here you can define the permissions for home page for user
end
end发布于 2015-05-21 11:39:29
您可以在应用程序控制器中实现after_sign_in_path方法,其中资源是您的用户:
class ApplicationController < ActionController::Base
def after_sign_in_path_for(resource)
if resource.can? :show, ProtectedResource
protected_area_path
else
denied_access_path
end
end
end这将告诉您的用户在哪里重定向。
https://stackoverflow.com/questions/30372104
复制相似问题