Большое спасибо за указатель кокона nathanvda.Я почесал голову о некоторых проблемах, которые у меня возникали при попытке реализовать это под rails 4.0.0-rc1, и я подумал, что поделюсь своими выводами на случай, если у кого-то возникнут те же проблемы при попытке использования этих udner rails4.
Используя приведенный выше код в качестве примера, я добавил user_id и widget_id к разрешенным параметрам, поскольку они сохраняются в соединительной таблице user_widgets.В rails 3 вы должны были добавить их к attr_accesible в пользовательской модели, но в rails 4 вы должны добавить их к разрешенным параметрам в контроллере основной модели, которую вы используете для вложения, так что здесь это будет users_controller:
params.require(:user).permit(...user_fields...,
user_widgets_attributes: [:user_id, :widget_id])
Делая только это, вы сталкиваетесь с несколькими проблемами:
- Каждая ассоциация (виджет) умножается при обновлении пользовательской записи.1 становится 2, 4, 8 и т. Д. При обновлении и сохранении записи.
- удаление ассоциации не работает, поле удаляется из формы, но связь остается в БД.
Чтобы исправить эти проблемы, вам также необходимо добавить: id и: _destroy в список разрешенных атрибутов:
params.require(:user).permit(...user_fields...,
user_widgets_attributes: [:user_id, :widget_id, :id, :_destroy])
, после этого он работает без сбоев.
Juergen
PS: На данный момент вы должны использовать репозиторий git в своем Gemfile, чтобы использовать кокон под rails 4, пока не будет выпущен совместимый с rails 4 гем.Спасибо за электронную почту nathanvda в моем сообщении об ошибке !!