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
これが常に真を返していることに関係なく。ただし、能力を1行で書くと、次のようになります。
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パーミッションが1行を使用する場合、期待どおりに機能します。ブロックを使用すると、常にtrueが返されます。なぜこれが壊れているのかについてのアイデアや考えはありますか?ありがとう