当我通过 Rails 应用程序工作时,我还有另一个问题。该应用程序允许用户通过 Devise 进行注册。这样可行。在应用程序中,用户可以创建自己的名为 Circles 的组。这样可行。现在我希望用户能够将其他用户添加到他们的圈子。这行不通。
到目前为止,我已经实现了 CanCan 和 Rolify。我可以从 User 模型为用户分配角色,所以我知道设置工作正常。我无法弄清楚用户如何将另一个用户添加到特定的圈子。我查看了 SO 并发现了一些与我想在这里做的事情相近的东西:Rails 3.1 中的授权:CanCan、CanTango、declarative_authorization?,但这不适用于我的情况。
我知道如何使用 CanCan 在应用程序级别添加角色。我想要做的是在特定的 Circle 实例中添加一个角色。并非所有用户都可以访问圈子,只有那些被添加的用户。
如果有人有任何想法,我愿意接受其他方式来实现这一点。设置它的最佳方法是什么?
编辑
我想出了如何从 Rails 控制台做到这一点。 user.add_role :moderator, Circle.find(22)
这完美地工作并保存到数据库中。我怎样才能通过视图中的表单来做同样的事情?