Rails 3 UTF-8 chaîne de requête d'apparaître dans l'URL?
J'ai une requête de recherche formulaire sur ma page d'accueil (/)
<% form_tag(search_path, :method => :get) do %>
<%= text_field_tag 'query' %>
<%= submit_tag "Search", :name => nil%>
<% end %>
Quand je soumettre ce formulaire de recherche, j'ai envie de finir au (/recherche?query=foo). Toutefois, en ce moment je obtenir /recherche?utf8=%E2%9C%93&query=foo. Qu'est-ce que utf8 paramètre en train de faire là? Comment puis-je me débarrasser de lui?
Grâce.
Vous devez vous connecter pour publier un commentaire.
L'utf8 paramètre (anciennement connu sous le bonhomme de neige) est un Rails 3, la solution de contournement pour un Internet Explorer bug.
La réponse courte est que Internet Explorer ignore publier des données le codage UTF8, sauf si au moins une UTF8 char est inclus dans le message de données. Pour cette raison, les Rails injecte une UTF8 personnage en forme de force, c'est à dire de traiter le tout comme encodés en utf-8.
Ce paramètre est une nouvelle fonctionnalité de rails 3.
C'était déjà le bonhomme de neige.
Il aide, c'est à dire vraiment utiliser l'utf-8.
Éviter d'utiliser form_tag et ça fonctionne:
form_tag
's:enforce_utf8
option.form_tag
dans les Rails 4.2 (et probablement plus tôt) a un:enforce_utf8
option;Je pense que tout le monde a fait un excellent travail en expliquant pourquoi elle existe, mais je pense que la question n'est pas abordée, ce qui a été:
Donc tout ce qui est dit est correct, vous avez besoin d'elle pour l'aider avec "IE", mais la raison pour laquelle il s'affiche dans votre barre d'adresse est parce que vous faites un "GET" par opposition à un "POST". Faire un post et c'est parti, mais alors vous ne sont également pas convention ci-après.
Il revient à l'lesquels sont les plus acceptable pour vous.