如何创建表单并保留现有参数

问题描述

我可以以此链接到保持当前参数(页面参数除外)的同一页面

<%= link_to 'test',request.params.except(:page) %>

是否可以通过表单来执行此操作?我以为这可以用,但不能保持参数

<%= form_with(path: request.params.except(:page),method: "get",local: true) do %>

这也不起作用

<%= form_with(path: params.except(:page),local: true) do %>

解决方法

我无法使用形式在URL中传递参数。感觉有些棘手,但是以下操作通过将参数作为隐藏字段发送而起作用。例如,如果您想在搜索表单中保留名为“ state”和“ order”的参数,则可以执行此操作。这比我上面尝试的要安全,因为它明确地将允许的参数列入了白名单(而不是删除不需要的参数,例如上面的“页面”)

<% request.params.slice("state","order").each do |key,value| %>
  <%= hidden_field_tag key,value %>
<% end %>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...