form_for 到 save/delete 从 many_to_many 连接 table

form_for to save/delete from many_to_many connecting table

我有一个包含类别的目录(比如鞋子、衬衫、裤子)。目录已分配给它的品牌(jinco、big dog、mossimo)将可用于类别,但我们希望能够为类别转换 off/on 品牌。所以鞋子区我们只想展示big dog和mossimo,裤子方面我们只想展示jinco

所以我在目录编辑页面,并且我在 table 上显示每个类别,如下所示:

类别 |金科 |莫西莫 |大狗
裤子 |复选框 |复选框 |复选框
衬衫 |复选框 |复选框 |复选框
鞋子 |复选框 |复选框 |复选框

我想在选中复选框时创建一个新的 catalog_brand 条目(使用 AJAX remote: true),然后在取消选中复选框时删除 catalog_brand 条目.

型号:

目录(has_many:catalog_brands)
catalog_brands(belongs_to:目录,belongs_to:system_categories)
system_categories (has_many: catalog_brands)

我正在执行目录控制器的编辑操作,我知道我需要使用 fields_for 标记,但我不确定如何构建 catalog_brand 上的创建和删除操作table 来实现这一目标。我是不是想太多了,它是否足够简单,就像通常所做的正常 create/delete 一样?

如果您使用的是 check_box,我认为 remote: true 不是您的最佳选择,您需要将事件附加到您的复选框,一旦选中就会触发.但是,如果您擅长 CSS 或设计框架,您可以将 button/anchor 标记样式设置为看起来像复选框并将 remote: true 附加到这些标记上,但它也会带来一层复杂性,因为您需要在检查时替换 url。所以最后,将事件监听器附加到您的复选框可能是最好的方法。 A previous SO question has a little description of how you could listen for clicks on the checkboxes

如果我能提供帮助或您可能需要的其他指导,请告诉我。