cancancan 创建权限不能正常使用条件散列

cancancan create permission not working properly with conditions hash

我希望管理员用户能够为此帐户创建新用户并从该帐户读取、更新用户。

can [:create, :read, :update], User, id: account_users_ids
如果 account_users_ids 不是空数组,

将不起作用。 我需要拆分权限才能正常工作

can :create, User
can [:read, :update], User, id: account_users_ids

将条件定义为

有什么问题
can [:create, :read, :update], User, id: account_user_ids

谢谢

这可能有点晚了,但是在 Ruby 2.0+ 中,您的条件散列被解释为关键字参数,在这种情况下 CanCanCan 会忽略它。

添加括号应该可以使其按预期工作:

can [:create, :read, :update], User, { id: account_user_ids }

另请参阅:

关键字参数:https://robots.thoughtbot.com/ruby-2-keyword-arguments

CanCan::Ability#can: https://github.com/CanCanCommunity/cancancan/blob/develop/lib/cancan/ability.rb#L132-L134