CanCan - 指定角色可以修改模型

时间:2013-01-31 02:45:48

标签: ruby-on-rails ruby cancan

这就是我的数据库的布局方式。

User (one) => many Computers (one) => many Accounts

我正在尝试设置CanCan,以便只有计算机的所有者才能编辑帐户。这是我到目前为止所做的。

user ||= User.new 
if user.admin?
    can :manage, :all
else
    can :manage, Computer, :user_id => user.id # <= works
    can :manage, Account, :computer => {:user_id => user.id} # <= doesnt work
end

第二种方法不起作用。我希望它能让用户能够编辑与他所有计算机相关的所有帐户。为什么这不起作用的任何想法? 我尝试过实现guide所说的一些方法,但这些方法都没有用。

1 个答案:

答案 0 :(得分:0)

我有类似的情况,并且能够使用它:

can :manage, Account, computer_id: user.computers.collect(&:id)

因此,基本上,用户可以管理具有与用户关联的computer_ids的帐户。