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

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

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

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

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

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

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

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


person looloobs    schedule 17.02.2010    source источник


Ответы (1)


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

Попробуйте это на ваш взгляд:

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

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

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

исключить роль «Администратор».

person Leonhardt Wille    schedule 17.04.2010