Сильные параметры для вложенных атрибутов модели в форме в приложении 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 ответ

Несколько вещей:

  1. Вы можете разрешить хэш с неизвестными ключами с пустой хеш-скобкой.
  2. Не забудьте, что вам нужен идентификатор для ваших владельцев.
  3. Обратите внимание на недостающее "е" в прочем.

Попробуйте что-то вроде этого:

params.
    require(:project).
    permit(:name, :description,
           owners_attributes: [:id, :name, :email, miscellaneous: {}, :_destroy])
Другие вопросы по тегам