Ruby on rails 设计';用户登录&x27;无法从CanCan访问';能力';模型
我正在开发一个Rails应用程序,已经设计好了所有的默认设置,正在设置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登录?行出现的情况下执行此操作时,我得到以下
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