Сильные параметры для вложенных атрибутов модели в форме в приложении Rails 4
Я использую самоцвет Cocoon ( https://github.com/nathanvda/cocoon) в моем приложении на Rails 4, подключенном к базе данных Postgres для создания вложенной формы модели. Я разрешил атрибуты вложенной модели (владельца) в контроллере моих проектов следующим образом
params.
require(:project).
permit(:name, :description,
owners_attributes: [:name, :email, :miscellanous, :_destroy])
Разнообразный столбец в таблице владельцев имеет тип json . Я не могу правильно указать разное в необходимых параграфах выше. Предположим, что разное может иметь следующие ключи: favour_color и favour_movie. Как я могу указать это в сильных параметрах выше?
Если я сделаю следующее:
params.
require(:project).
permit(:name, :description,
owners_attributes: [:id, :_destroy, :name, :email, miscellanous_attributes: [:favorite_color, :favorite_movie] ])
я получил syntax error, unexpected ']', expecting =>
Как правильно разрешить использование столбца json, называемого смешанным, для владельцев вложенных моделей, использующих сильные параметры?
1 ответ
Несколько вещей:
- Вы можете разрешить хэш с неизвестными ключами с пустой хеш-скобкой.
- Не забудьте, что вам нужен идентификатор для ваших владельцев.
- Обратите внимание на недостающее "е" в прочем.
Попробуйте что-то вроде этого:
params.
require(:project).
permit(:name, :description,
owners_attributes: [:id, :name, :email, miscellaneous: {}, :_destroy])