【问题标题】:form_for to save/delete from many_to_many connecting tableform_for 从 many_to_many 连接表中保存/删除
【发布时间】:2016-06-08 20:22:49
【问题描述】:

我有一个分类目录(想想鞋子、衬衫、裤子)。目录有分配给它的品牌(jinco、big dog、mossimo),这些品牌将可用于类别,但我们希望能够为类别关闭/打开品牌。所以在鞋区我们只想展示 big dog 和 mossimo,在裤子上我们只想展示 jinco。

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

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

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

型号:

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

我正在执行 Catalog 控制器的编辑操作,并且我知道我需要使用 fields_for 标记,但我不确定如何构建 catalog_brands 表上的 Create 和 Delete 操作来实现这一点。我是不是想太多了,它和通常完成的正常创建/删除一样简单吗?

【问题讨论】:

  • 你能告诉我们你的控制器吗?
  • @Cyzanfar 适用于哪个型号?

标签: ruby-on-rails many-to-many form-for fields-for


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 2012-06-01
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多