gpt4 book ai didi

ruby - cancan 能力定义语法 - 有更短的版本吗?

转载 作者:数据小太阳 更新时间:2023-10-29 08:53:34 24 4
gpt4 key购买 nike

我目前在 ability.rb 中有这样的东西:

if user.role? == "staff"
can :update, Interp do |item|
item.try(:user) == user
end
can :update, Invitation do |item|
item.try(:user) == user
end
end

其实每个角色都有一堆这样的“更新”语句。下一个版本是否也能正常工作?

if user.role? == "staff"
can :update, [Interp, Invitation] do |item|
item.try(:user) == user
end
end

有没有更短的路?

更新:此方法绝对有效,而且代码量最少。

最佳答案

应该 工作。如果没有,您可以随时这样做:

if user.role? == "staff"
[Interp, Invitation].each do |resource|
can :update, resource do |item|
item.try(:user) == user
end
end
end

不过,我认为 cancan 足够聪明,可以理解您在这种情况下要做什么。不过,从未尝试过。

关于ruby - cancan 能力定义语法 - 有更短的版本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7034241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com