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 数组作为隐藏字段的参数传递?的主要内容,如果未能解决你的问题,请参考以下文章
Spring Data REST 默认对 JSON 隐藏技术实体字段(@Version、@Id)。如何将它们作为通常的属性返回?