使用CanCan和Rolify将特定用户角色添加到特定模型实例

时间:2013-01-16 21:51:00

标签: ruby-on-rails devise cancan

当我通过Rails应用程序工作时,我有另一个问题。该应用程序允许用户通过Devise注册。这样可行。在应用程序中,用户可以创建自己的名为Circles的组。这样可行。现在我希望用户能够将其他用户添加到他们的圈子中。这不起作用。

到目前为止,我已经实施了CanCan和Rolify。我可以从User模型为用户分配一个角色,所以我知道设置工作得很好。我无法弄清楚的是用户如何将另一个用户添加到特定的Circle。我已经查看了SO并发现了一些与我想要做的事情相近的事情:Authorization in Rails 3.1 : CanCan, CanTango, declarative_authorization?,但这对我的情况不起作用。

我知道如何使用CanCan在应用程序级别添加角色。我想要做的是在特定的Circle实例中添加一个角色。并非所有用户都可以访问Circle,只有那些已添加的用户。

如果有人有任何想法,我愿意接受其他方法来实现这一目标。设置它的最佳方法是什么?

修改

我想出了如何从rails控制台执行此操作。 user.add_role :moderator, Circle.find(22)这完美地运行并保存到数据库中。如何通过视图中的表单执行相同的操作?

1 个答案:

答案 0 :(得分:0)

使用控制器....它会在您提交表单后添加角色!在控制器中,您可以使用类方法,例如:) 如果我需要更明确,请告诉我! 干杯