Форма создает уже загруженные атрибуты в дополнение к новым атрибутам, как мне игнорировать первый? - PullRequest
1 голос
/ 18 февраля 2010

В моем приложении вы:

  1. Если у вас есть пользователь-администратор, который входит в систему, и у этого пользователя есть роль (отдельная модель), тогда я использую плагин Declarative_authorization для предоставления доступа к определенным областям.

  2. Этот пользователь-администратор также может зарегистрировать новых пользователей в системе, когда они делают это (используя Authlogic), они заполняют вложенную форму, которая включает роль этого нового пользователя.

Итак, происходит то, что роль администратора загружается с помощью Declarative_authorization, а затем вложенная форма с использованием has_many_nested_attributes загружает эту существующую роль, а также новую роль для нового пользователя (пользователи могут иметь много ролей) ,

Есть ли какой-нибудь способ, которым я могу сказать создаваемому новому пользователю игнорировать роль, назначенную current_user, и создавать роль только в форме для нового пользователя?

Я просмотрел много разных вещей, но, кажется, все усложняется тем, что это вложенные атрибуты.

Заранее спасибо.

1 Ответ

0 голосов
/ 17 апреля 2010

Зачем вам создавать новую роль при создании нового пользователя? Я бы назначил нового пользователя только определенным ролям, а не создавал группу новых ролей для нового пользователя.

Попробуйте по вашему мнению:

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

вместо Roles.all, вы также можете использовать

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

для исключения роли "Администратор".

...