【发布时间】:2016-06-22 19:13:13
【问题描述】:
在我的 Rails 网站上,我有一个包含许多表单(用于搜索)的网页,GET。 GET与POST相比的好处是参数存储在URL中,用户可以将URL与他们在搜索中所做的所有设置共享。
但是,当网页变得复杂并且有多个表单时,比如说表单A和表单B。我提交表单A后,表单B中的东西就会消失,并且URL不再显示任何有关内容的内容表单 B(如果我提交表单 A,它只会显示表单 A 中的内容,反之亦然)。
所以在keep form value after submit it 中,有一个建议是使用POST 而不是GET.. 但它会使URL 不显示任何内容,这对我的用例不利。
知道如何解决它吗?目标是保留以前的表单结果(如果未更改)并让表单显示在 URL 中(更改时更新)
代码:
result.html.erb
<%= form_tag ('/foo/search'), :method => :get, :class => "form-inline" do %>
<input name="search" type="text" class="form-control " placeholder="search name"/>
<button type="submit"> search But</button>
<% end %>
....
<%= render :partial => 'page1' , ... %>
_page1.html.erb
....
<%= form_tag('/foo/search', method: "get", id: "myForm") do %>
<%= text_field_tag "query[name]", params["query"].nil? ? nil : params["query"]["name"], placeholder: "name"%>
<% end %>
....
当我在result 中提交表单时,我可以在URL 中看到/foo/search?search=someThing;但是在我在页面中提交myForm 之后,search=someThing 就消失了,但/foo/search?query[name]=someOtherThing 正在显示。我怎样才能让它显示/foo/search?search=someThing&query[name]=someOtherThing
【问题讨论】:
标签: ruby-on-rails forms rest http post