1

在我的应用程序中,您:

  1. 让管理员用户登录并且该用户具有角色(单独的模型),然后我使用 declarative_authorization 插件来授予对某些区域的访问权限。

  2. 该管理员用户还可以在系统中注册新用户,当他们这样做(使用 Authlogic)时,他们会填写一个包含该新用户角色的嵌套表单。

所以发生的事情是 admin 用户的角色由 declarative_authorization 加载,然后使用 has_many_nested_attributes 的嵌套表单正在加载现有角色以及新用户的新角色(用户可以有很多角色)。

有什么方法可以告诉正在创建的新用户忽略分配给 current_user 的角色,只为新用户创建表单中的角色?

我已经查看了很多不同的东西,但是这些嵌套属性似乎变得更加复杂。

提前致谢。

4

1 回答 1

0

创建新用户时为什么要创建新角色?我只会将新用户分配给特定角色,而不是为新用户创建一堆新角色。

在你看来试试这个:

collection_select :user,"role_ids[]", Roles.all, :id, :name, {}, {:multiple=>true}

而不是 Roles.all,你也可以使用

Roles.find(:conditions=>"role_name IS NOT 'admin'")

排除“管理员”角色。

于 2010-04-17T15:31:51.933 回答