Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 设计';用户登录&x27;无法从CanCan访问';能力';模型_Ruby On Rails_Devise_Cancan - Fatal编程技术网

Ruby on rails 设计';用户登录&x27;无法从CanCan访问';能力';模型

Ruby on rails 设计';用户登录&x27;无法从CanCan访问';能力';模型,ruby-on-rails,devise,cancan,Ruby On Rails,Devise,Cancan,我正在开发一个Rails应用程序,已经设计好了所有的默认设置,正在设置CanCan 以下是“能力”课程的内容(不是我的代码,基于一些教程) 我知道文件本身可以工作,因为我添加了一个示例authorize!:编辑,@document到我的一个控制器。如果我删除If user\u signed\u in?行(当然还有end),那么当can:manage,:all行出现时,我可以访问文档控制器的操作,如果没有它,它会显示“拒绝访问” 但是,当我试图在用户\u登录?行出现的情况下执行此操作时,我得到以下

我正在开发一个Rails应用程序,已经设计好了所有的默认设置,正在设置CanCan

以下是“能力”课程的内容(不是我的代码,基于一些教程)

我知道文件本身可以工作,因为我添加了一个示例
authorize!:编辑,@document
到我的一个控制器。如果我删除
If user\u signed\u in?
行(当然还有
end
),那么当
can:manage,:all
行出现时,我可以访问
文档
控制器的操作,如果没有它,它会显示“拒绝访问”

但是,当我试图在
用户\u登录?
行出现的情况下执行此操作时,我得到以下错误:

文档控制器中的命名错误#编辑

未定义的方法“用户已登录”#

而且,有趣的是,
user\u signed\u in?
在我的视图中工作得非常好,在视图中,我会显示一个登录框或当前登录用户的详细信息,如果
if
<代码>其他块

您知道如何访问
用户登录吗?
这里?从长远来看,我打算从用户记录中读取一个值,以确定他们的访问级别,但这个概念很重要,因为变量将来自同一个地方


谢谢

我不确定您到底想做什么,但您可以将
设计::控制器::助手
包含到
能力
类中,然后将
用户登录
替换为
已登录(:user)

我不确定您到底想做什么,但您可以将
设计::控制器::助手
包含到
能力
类中,然后将
用户登录?
替换为
已登录(:user)

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