我在Controller中有以下代码。从中理解它是非常困难的。
allow user: :is_admin?, :except => [:new, :create]
除了方法在这里做什么之外,很难理解。
答案 0 :(得分:3)
:expect
表示允许用户if_admin?
为所有操作 EXCEPT :new和:create返回true。希望有所帮助。
答案 1 :(得分:1)
:except
不是方法,它是用作哈希键的符号。
你的代码搞砸了两种散列样式,方法是allow
,
参数是哈希{:user => :is_admin?, :except => [:new, :create]}
,
答案 2 :(得分:0)
请参阅文档以获取正确解释的允许方法。 但我的假设是
答案 3 :(得分:0)
:except
指定无法访问控制器中的:new
和:create
操作。但是,is_admin?
是一个布尔值,如果条件为真,则求值为true。因此,如果用户是管理员,他将不有权访问:new和:create,但可以访问控制器中的所有其他操作。根据你的评论,这就是你所要求的。
如果用户是管理员,则可以允许用户通过:except
的倒数访问:new和:创建操作,方法是将:except
更改为:only