首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设计“user_signed_in?”无法从CanCan‘能力’模型访问

设计“user_signed_in?”无法从CanCan‘能力’模型访问
EN

Stack Overflow用户
提问于 2013-06-15 18:10:10
回答 1查看 1.3K关注 0票数 1

我正在开发一个Rails应用程序,设计、设置和处理所有默认设置,并且正在设置CanCan。

以下是“能力”类的内容(实际上不是我的代码,基于几个教程);

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

  def initialize(user)
    user ||= User.new # guest user (not logged in)
    if user_signed_in?
        can :manage, :all
    end
  end
end

我知道该文件本身可以工作,因为我已经向我的一个控制器添加了一个示例authorize! :edit, @document。如果我移除if user_signed_in?行(当然还有end),那么当can :manage, :all行出现时,我可以访问document控制器的操作,没有它,它就表示“拒绝访问”。

但是,当我尝试使用user_signed_in?行进行此操作时,我会得到以下错误;

NoMethodError in DocumentsController#edit 未定义方法`user_signed_in?‘为#

有趣的是,user_signed_in?在我的视图中工作得很好,在这里我会显示一个登录框或当前使用if . else块登录的用户的详细信息。

有什么办法可以在这里访问user_signed_in?吗?从长远来看,我打算从用户的记录中读取一个值来识别他们的访问级别,但是重要的是,这个概念是可行的,因为变量将来自同一个地方!

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2013-06-15 18:24:09

我不清楚您到底要做什么,但是可以将Devise::Controllers::Helpers包含到Ability类中,然后用signed_in?(:user)替换user_signed_in?

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

https://stackoverflow.com/questions/17126490

复制
相关文章

相似问题

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