Rails - 如何将 id 数组作为隐藏字段的参数传递?

Posted

技术标签:

【中文标题】Rails - 如何将 id 数组作为隐藏字段的参数传递?【英文标题】:Rails - How to pass arrays of ids as params for hidden field? 【发布时间】:2020-11-16 18:46:06 【问题描述】:

在 rails 4 应用程序中,有一个数据列表以及复选框(多个)选项。我想删除一些选定的数据,对于普通的delete 方法,我一次尝试了 1000 行,它返回414 Request-URI Too Large。因为所有 id 都在 URL 中传递,与 get 方法相同。

我尝试通过将 id 作为隐藏字段传递来使用表单提交来解决此问题,但 id 为空白。因为 ids 应该通过复选框。

有没有办法通过将 id 作为参数传递来解决直接请求中的这个问题?在此之前我们也需要确认Are you sure?

我们如何在这里获取选中的复选框 ID 并分配给参数?

请帮帮我,我应该可以一次删除 1000 行。

【问题讨论】:

为什么你不尝试使用 POST 请求来实现它?因为如果您使用 javascript 或任何相关的 hack,处理 1000 条记录总是需要时间。 “我应该能够一次删除 1000 行”。这不应该通过 GET 请求来完成。 GET 应该始终是幂等的,而不是创建、删除或更改资源。使用 DELETE。 即使 POST 方法返回与 GET/DELETE 方法返回相同的错误 414 Request-URI Too Large 【参考方案1】:

为了避免url查询字段的长度限制,可以使用POST方法。

由于这与 REST 范例不一致,您可能希望包含一个隐藏字段来传递值为“delete”的“_method”属性,这是 Rails 在 http POST 之上实现 DELETE 动词的方式请求。

当然,您需要确保正确指定路由以将此请求路由到适当的机架端点。

【讨论】:

以上是关于Rails - 如何将 id 数组作为隐藏字段的参数传递?的主要内容,如果未能解决你的问题,请参考以下文章

通过隐藏字段将数组传递给rails

如何将jquery克隆行附加到隐藏字段

Rails 表单,如何使用 jquery 设置隐藏字段的值

Spring Data REST 默认对 JSON 隐藏技术实体字段(@Version、@Id)。如何将它们作为通常的属性返回?

如何隐藏radio_button并使用div / label作为按钮? (Ruby on Rails)

如何在 Rails 中执行 AJAX-y 条件显示/隐藏表单字段?