【发布时间】:2011-05-28 03:09:27
【问题描述】:
我的 Rails 3 应用中有一个简单的搜索表单:
<%= form_tag search_path, :method => "get" do %>
<%= text_field_tag :q, params[:q] %>
<%= submit_tag "search", :name => nil %>
<% end %>
当用户点击提交按钮时,他们会被带到 URL:http://myapp.com/search?utf8=%E2%9C%93&q=foobar
(其中%E2%9C%93 显示为复选标记:✓)。
我没有对 utf8 参数做任何事情,所以我想通过完全删除它来保持 URL 的干净。也就是说,我希望用户转到 URL:http://myapp.com/search?q=foobar。
我该怎么做?
【问题讨论】:
-
那么你最终做了什么?把它放在那里?
-
shingara 对stackoverflow.com/questions/4104474 的回答有效:只需使用
<form>...</form>而不是<%= form_tag %>...<% end %>。请注意,只有在提交的内容永远不会出现在您的数据库中时,您才应该这样做,如 stackoverflow.com/questions/3222013 中所述。 -
这是一个非常相关的问题,因为我不想用单个不符合标准的浏览器的解决方法来打扰我的用户。我只希望我拥有的少数 IE 用户使用这个“utf8=✓”。
-
请参阅my answer 回复。
form_tag的:enforce_utf8选项。 -
如果您想使用 Javascript/jQuery 序列化忽略
utf8参数,您可以使用以下代码:$("form#my_form :input[name!='utf8']").serialize()。它将忽略序列化参数中的utf8键/值对
标签: ruby-on-rails utf-8