提交表单时将选定对象 ID 的列表传递给控制器

Posted

技术标签:

【中文标题】提交表单时将选定对象 ID 的列表传递给控制器【英文标题】:Pass a list of selected object IDs through to controller when form is submitted 【发布时间】:2017-12-03 20:08:41 【问题描述】:

在 Rails 中没有非常丰富的经验并正在寻找健全性检查 - 我有一个表格供用户创建列表。在这个表单上,我将(最终)有一个搜索字段,他们可以在其中搜索现有对象以添加到他们的列表中。将有超过 50,000 个项目,因此不能一次列出所有项目。由于这方面很复杂,像 Cocoon 这样的东西对我来说似乎不够灵活,我选择自己在控制器或模型中建立列表和项目之间的关联。

所需的工作流程是 -

    用户找到项目并点击“添加”链接 然后项目显示在页面上的暂存区域中,显示待添加的待添加项目。 用户添加任何其他所需的项目并提交表单 项目 ID 被传递到控制器,我在其中建立创建的列表和选定项目之间的关联。

我当前的解决方案是将项目 ID 存储在表单的隐藏字段中,然后以这种方式将它们传递给控制器​​。看来我必须禁用 Turbolinks 才能使此方法正常工作,因为它会不断重新加载页面,从而在我单击“添加项目”链接之一时将我的隐藏字段覆盖为默认值。

有没有更清洁的方法可以做到这一点?

【问题讨论】:

要获得您需要的帮助,请查看how to ask。 【参考方案1】:

信息不足,但我假设您使用的是anchor 标签?

您需要禁用 anchor 标记上的默认值,这样您就不会刷新等,例如:

<a class="s-inte" />
$('.s-inte').click(function(e)
    e.preventDefault()
)

【讨论】:

以上是关于提交表单时将选定对象 ID 的列表传递给控制器的主要内容,如果未能解决你的问题,请参考以下文章

提交按钮是不是在表单提交时将其值传递给操作方法?

Django,如何在提交表单时将 HTML 表单值传递给 URL?

将要从mat-select表单中绑定的选定值传递给提交按钮功能

提交时将对象列表从视图发送到控制器

提交表单时将语言参数传递到下一页(url)

如何将对象列表传递给控制器​​?