Форма создает уже загруженные атрибуты в дополнение к новым атрибутам, как мне игнорировать первый?

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

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

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

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

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

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

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

1 ответ

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

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

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

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

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

исключить роль "Админ".

Другие вопросы по тегам