我的模特看起来像这样:
class Photo
has_one :photo_gallery
has_one :gallery, through: :photo_gallery
end
class PhotoGallery
belongs_to :photo
belongs_to :gallery
end
class Gallery
has_many :photo_galleries
has_many :photos, through: :photo_galleries
end
出于这个问题的目的,Gallery
提供了一个Gallery.only_gallery
。
我希望Photo
的表单包含一个复选框。
如果在提交表单时选中了复选框,则照片将通过Gallery.only_gallery
模型与PhotoGallery
相关联。如果未选中,则会破坏此关联。
这可能吗?
我理解如何建立强大的参数来接受任何必要的东西。我不明白的是如何创建一个可以做到这一点的表单。
答案 0 :(得分:0)
你真的不应该通过一种形式来修改关联:它们要么存在,要么不存在。
在您的情况下,如果您不检查复选框,则不会在两个模型的连接表中创建任何行,因此您不会遇到问题。
我会在你的照片中推荐这样的东西:
<%= f.label :gallery_ids %> <br>
<%= collection_select(:photo, :gallery_ids, Gallery.all, :id, :name) %>
并添加
dependent: :nullify
到您的模型关联