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:
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.