EDIT 2的Rails 4.2使用的form_tag创建搜索,但没有使用查询字符串PARAMS
相关问题here。
编辑
这是我需要提交路线:
get '/s/:term', controller: :products, action: :search, as: :search_products
我有这样的一个搜索表单:
<%= form_tag(search_products_path, :method => "get", id: "search-form", name: "f1", enforce_utf8: false) do %>
<div class="input-group">
<%= text_field_tag :search, params[:search], placeholder: "Search products", class: "form-control", name: "search" %>
<div class="input-group-btn">
<button class="btn btn-secondary">
<span class="glyphicon glyphicon-search"></span>
</button>
</div>
</div>
<% end %>
但是这创造了这样的网址:
domain/s?search=[user input]
我需要的URL是这样,而不是:
domain/s/[user_input]
是我不知道这是不是下面的Rails约定。在这一点上,我无所谓,我只需要弄明白。
感谢。
这不是Rails标准,它是HTML/HTTP标准 - 问题在于你的表单使用'get'而不是'post',这就是GET请求的标准URL ... –
我知道这不是标准。我在这个问题上说。我已经添加了一个编辑来显示我尝试使用此表单创建的路线。 – rmcsharry
它不能是POST,因为它必须是可以缓存的“永久链接”。注意它是一个SEARCH表单,所以它不会在服务器上创建任何东西,只是检索一些搜索结果。 – rmcsharry