Я успешно использую следующие шаблоны в своем приложении
Создание HABTM с помощью select_tag:
# in view
= f.select :artwork_ids, options_from_collection_for_select(current_user.profile.artworks, :id, :name),
{prompt: 'select'}, class: 'form-control', multiple: 'multiple'
# strong params in controller
params.require(:offer).permit(artwork_ids: [])
Создание новых объектов для таблицы соединения из карусели (swiper- js карусель, но это не имеет значения):
# in view
= f.fields_for :artwork_ids, Favorite.new do |ff|
= ff.hidden_field :favoritable_id, value: artwork.id
= ff.hidden_field :favoritable_type, value: artwork.class.name
.custom-control.custom-checkbox.swiper-slide__check
= ff.check_box :_destroy, {checked: ff.object.persisted?, class: 'custom-control-input'}, false, true
= ff.label :_destroy, ' '.html_safe, class: 'custom-control-label'
# strong params in controller
params.require(:project).permit(favorites_attributes: [:id, :favoritable_id, :favoritable_type, :_destroy])
# in model
accepts_nested_attributes_for :favorites, allow_destroy: true
Теперь мне нужно создать ассоциации HABTM, используя то же поведение, что и во втором примере, который я привел выше. Это должны быть слайды (изображения) с флажками. Установленный флажок означает, что ассоциация HABTM будет создана при отправке формы. Является ли это возможным? Или мне нужно использовать has_many through вместо has_and_belongs_to_many?