ror root_path restful rails examples ruby-on-rails string url ruby-on-rails-3

ruby-on-rails - root_path - routes rails examples



Rails 3 cadena de consulta UTF-8 aparece en la URL? (4)

Tengo un formulario de consulta de búsqueda en mi página de inicio (/)

<% form_tag(search_path, :method => :get) do %> <%= text_field_tag ''query'' %> <%= submit_tag "Search", :name => nil%> <% end %>

Cuando envío este formulario de búsqueda, quiero terminar en (/ search? Query = foo). Sin embargo, en este momento me sale / buscar? Utf8 =% E2% 9C% 93 & query = foo. ¿Qué hace ese parámetro utf8 allí? ¿Cómo puedo deshacerme de eso?

Gracias.


Creo que todos hicieron un gran trabajo al explicar por qué existe, pero siento que la pregunta no fue respondida, que fue:

¿Cómo puedo deshacerme de eso?

Entonces todo lo dicho es correcto, lo necesitas para ayudar con "IE" pero la razón por la que aparece en tu barra de direcciones es porque estás haciendo un "GET" en lugar de un "POST". Conviértalo en una publicación y ya no está, pero tampoco sigas las convenciones.

Todo se reduce a cuáles de estos son más aceptables para usted.


El parámetro utf8 (anteriormente conocido como snowman ) es una solución de Rails 3 para un error de Internet Explorer.

La respuesta corta es que Internet Explorer ignora la codificación de datos POST UTF8 a menos que se incluya al menos un carácter UTF8 en los datos POST. Por esta razón, Rails inyecta un carácter UTF8 en el formulario para obligar a IE a tratar todo como codificado en UTF8.


Este parámetro es una nueva característica de los rieles 3.

Anteriormente era el muñeco de nieve.

Ayuda al IE a realmente usar utf-8.

Evita usar form_tag y funciona:

<form action="<%= search_path %>" method="get" > <%= text_field_tag ''query'' %> <%= submit_tag "Search", :name => nil%> </form>


form_tag en Rails 4.2 (y probablemente antes) tiene una opción :enforce_utf8 ;

Si se establece en falso, no se genera una entrada oculta con el nombre utf8.