我正在尝试使用 CanCan 在块中定义能力。在ability.rb 我的权限定义为:
can [:create, :show], Comment do |comment|
if !group.nil?
is_a_group_member(current_user_group_member) == true
elsif user.admin?
is_a_user_admin(current_user)
end
end
无论如何,这总是返回 true。但是,如果我将能力写在一行中:
can [:create, :show], Comment if (!group.nil? && is_a_group_member(current_user_group_member) == true) || (user.admin? && is_a_user_admin(current_user))
当ability.rb 权限使用一行时,它按预期工作。当我使用一个块时,它总是返回 true。关于为什么这会破坏的任何想法或想法?谢谢