首页 > 解决方案 > Rails从表单传递参数以保持排序顺序

问题描述

我试图在我的表单中传递一个隐藏的参数,以维护我的列表的排序顺序。我能够毫无问题地传递查询参数,但似乎无法将自定义参数传递给控制器​​。我不确定如何正确执行此操作,并且尝试使用f. hidden_param但没有成功。

该表格与刺激反射相关联,并在每次按键时提交。

任何帮助,将不胜感激。

<%= form_with url: x_path, method: :get do |f| %>
    <%= f.text_field :query, value: params[:query] %>
  <% end %>

标签: ruby-on-rails

解决方案


首先,您甚至不需要表单,并且实际上无法在 GET 请求中传递“隐藏参数”,因为没有请求正文。

在 GET 中,服务器收到的唯一内容是请求 URI 和客户端发送的任何标头(例如 cookie)。如果要向 GET 请求添加参数,只需将它们添加到查询字符串中:

<%= link_to 'Link text', x_path(query: { foo: 'bar' }) %>

结果与您创建带有隐藏输入的表单相同。在控制器端,请求正文和查询字符串参数之间存在差异。两者都添加到params哈希中。


推荐阅读