Форма создает уже загруженные атрибуты в дополнение к новым атрибутам, как мне игнорировать первый?
В моем приложении вы:
У меня есть пользователь-администратор, который входит в систему, и у этого пользователя есть роль (отдельная модель), а затем я использую плагин Declarative_authorization для предоставления доступа к определенным областям.
Этот пользователь-администратор также может зарегистрировать новых пользователей в системе, когда они делают это (используя 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'")
исключить роль "Админ".