为什么rails表单会向查询参数添加提交文本

时间:2018-03-14 10:28:46

标签: html ruby-on-rails

使用rails 5.1.5

我有一个观点:

<%= form_for(:date_filter, method: 'get') do |f| %>
  <%= f.date_field(:travel_date , value: @travel_date) %>
  <%= f.submit 'Time Travel now' %>
<% end %>

生成的html是:

<form action="/games" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓">
  <input value="2018-03-16" type="date" name="date_filter[travel_date]" id="date_filter_travel_date">
  <input type="submit" name="commit" value="Time Travel now" data-disable-with="Time Travel now">
</form>

Everythins工作正常但是当我按提交时我有这个网址

http://localhost:3000/games?utf8=%E2%9C%93&date_filter%5Btravel_date%5D=2018-03-16&commit=Time+Travel+now

为什么utf8和commit = Time + Travel +现在有?

如何删除它?

1 个答案:

答案 0 :(得分:0)

不确定为什么需要从表单中删除这两个参数。这些是通过导轨from_forsubmit标记创建的。

utf-8这里支持Internet Explorer 5并鼓励它对所有表单使用UTF-8。有关更多说明,请查看here

如果仍想删除utf-8参数,则需要创建自己的html表单,而不使用rails form_for帮助程序。

删除提交参数更容易。只需更改您的提交代码:

<%= f.submit 'Time Travel now' %>

<%= f.submit 'Time Travel now', :name => nil %>