首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CanCanCan gem + Omniauth Rails

CanCanCan gem + Omniauth Rails
EN

Stack Overflow用户
提问于 2015-05-21 11:14:24
回答 2查看 295关注 0票数 0

我使用的是Omniauth + Devise身份验证系统,用户可以使用他的电子邮件+密码或他的Google+帐户注册。

现在我需要使用CanCanCan gem来检查正在登录的用户是否有权限进入“后”登录区域,但是我不知道我可以在哪里执行该条件,在哪个文件设计中存储“成功后重定向”登录功能?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-21 11:28:12

你必须设计注册控制器。

代码语言:javascript
复制
class RegistrationsController < Devise::RegistrationsController
  protected

  def after_sign_up_path_for(resource)
    '/home' # your path to redirect after signup
  end
end

可以在abilities.rb文件中定义访问权限。

代码语言:javascript
复制
class Ability
  include CanCan::Ability

  def initialize(user)
    user ||= user.new

    # Here you can define the permissions for home page for user
  end
end
票数 0
EN

Stack Overflow用户

发布于 2015-05-21 11:39:29

您可以在应用程序控制器中实现after_sign_in_path方法,其中资源是您的用户:

代码语言:javascript
复制
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

这将告诉您的用户在哪里重定向。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30372104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档