提交表单时将选定对象 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?