【问题标题】:Rails - How to pass arrays of ids as params for hidden field?Rails - 如何将 id 数组作为隐藏字段的参数传递?
【发布时间】: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

标签: jquery ruby-on-rails methods request delete-row


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    • 1970-01-01
    相关资源
    最近更新 更多