我在控制器中有以下代码。很难理解它。
allow user: :is_admin?, :except => [:new, :create]
很难理解除了方法在这里做什么。
我在控制器中有以下代码。很难理解它。
allow user: :is_admin?, :except => [:new, :create]
很难理解除了方法在这里做什么。
:expect
在上面的行中表示允许用户对除:new 和 :create之外if_admin?
的所有操作返回 true 。希望有帮助。
:except
不是方法,它是用作哈希键的符号。
你的代码搞砸了两种哈希样式,方法是allow
,
参数是一个哈希{:user => :is_admin?, :except => [:new, :create]}
,
有关正确的解释,请参阅允许方法的文档。但我的假设是
:except
指定不能访问控制器中的:new
and动作。:create
但是,is_admin?
是一个布尔值,如果条件为真,则计算结果为真。因此,如果用户是管理员,他将无法访问 :new 和 :create,但可以访问控制器中的所有其他操作。根据您的评论,我相信这就是您要问的。
如果他是管理员,您可以允许用户访问 :new 和 :create 的相反操作:except
,方法是更改:except
为:only