1

私のアプリケーションでは:

  1. サインオンする管理者ユーザーがいて、そのユーザーがロール (別のモデル) を持っている場合、declarative_authorization プラグインを使用して特定の領域へのアクセスを許可します。

  2. その管理者ユーザーは、システムに新しいユーザーを登録することもできます。これを行うと (Authlogic を使用して)、その新しいユーザーの役割を含むネストされたフォームに入力します。

つまり、管理ユーザーのロールが 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 に答える