Rails 3 stringa di query UTF-8 visualizzata nell’URL?

Ho un modulo di ricerca nella mia home page (/)

 :get) do %>   nil%>  

Quando invio questo modulo di ricerca, voglio finire a (/ search? Query = foo). Tuttavia, in questo momento ottengo / search? Utf8 =% E2% 9C% 93 & query = foo. Cosa ci fa quel parametro utf8? Come posso liberarmene?

Grazie.

Il parametro utf8 (precedentemente noto come snowman ) è una soluzione Rails 3 per un bug di Internet Explorer.

La risposta breve è che Internet Explorer ignora la codifica UTF8 dei dati POST a meno che almeno un char UTF8 sia incluso nei dati POST. Per questo motivo, Rails inietta un carattere UTF8 nel modulo per forzare IE a trattare tutto come codificato UTF8.

Questo parametro è una nuova funzionalità di rails 3.

In precedenza era il pupazzo di neve.

Aiuta IE a usare davvero utf-8.

Evita di usare form_tag e funziona:

 
<%= text_field_tag 'query' %> <%= submit_tag "Search", :name => nil%>

form_tag in Rails 4.2 (e probabilmente prima) ha un’opzione :enforce_utf8 ;

Se impostato su false, non viene emesso un input nascosto con nome utf8.

Penso che tutti abbiano fatto un ottimo lavoro spiegando perché esiste, ma sento che alla domanda non è stata data risposta, che era:

Come posso liberarmene?

Quindi tutto ciò che è stato detto è corretto, è necessario presentarlo per aiutare con “IE”, ma il motivo per cui viene visualizzato nella barra degli indirizzi è perché si sta facendo un “GET” in contrasto con un “POST”. Rendilo un post ed è sparito, ma anche tu non stai seguendo la convenzione.

Si tratta di quali di questi sono più accettabili per te.