ошибка рельсов в форме из-за utf8=✓ с метапоиском

У меня проблема в форме поиска с мета-поиском:

Когда я отправляю форму поиска (метод get), у меня возникает ошибка 500 из-за параметра utf8=✓, добавленного рельсами.

http://localhost:3000/items?utf8=✓&search[brand_contains]=levi

Если я удалю галочку (✓) в URL-адресе и нажму Enter, все будет работать хорошо.

Я использую рельсы 3.0.9 и рубин 1.9.2.

Я действительно не знаю, как решить эту проблему, поэтому, если у вас есть какие-либо предложения, я буду рад их услышать. Спасибо за помощь.

Изменить:

Вот моя форма:

 = form_for @search, :class => "recherche" do |f|
  = f.label :brand
  = f.text_field :brand_contains
  = f.submit "Rechercher"

И ошибка:

Started GET "/items?utf8=%E2%9C%93&search[brand_contains]=levi&commit=Rechercher" for 127.0.0.1  at 2011-09-02 17:39:39 +0200

ArgumentError (invalid byte sequence in US-ASCII):

person guts    schedule 02.09.2011    source источник
comment
Я думаю, что эта ссылка: stackoverflow.com/questions/4104474/, поможет вам решить вашу проблему :)   -  person Ireneusz Skrobis    schedule 02.09.2011
comment
Я понимаю, почему есть этот параметр, но я не знаю, как решить мою проблему :(   -  person guts    schedule 02.09.2011
comment
Было бы неплохо иметь ошибку (имя, стек и т. д.).   -  person Benoit Garret    schedule 02.09.2011
comment
Наличие стека было бы еще приятнее ;-)   -  person Benoit Garret    schedule 02.09.2011
comment
Я добавил еще одну ссылку в свой ответ. Может быть, этот будет более полезен для вас :)   -  person Ireneusz Skrobis    schedule 02.09.2011


Ответы (2)


Я бы попытался реализовать что-то вроде этого (следуя ссылке из моего комментария):

<form action="<%= search_path %>" method="get" class="recherche" >
  <%= text_field_tag 'search[brand_contains]' %>
  <%= submit_tag "Rechercher", :name => nil %>
</form> 

если это не сработает, посмотрите на этот вопрос: удаление utf8=✓ из рельсов 3 отправки формы Это может быть полезно для вас.

person Ireneusz Skrobis    schedule 02.09.2011

Можете ли вы попробовать добавить следующую строку в environment.rb:

Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
person dexter    schedule 02.09.2011
comment
@pefs прокомментировал Где в environment.rb мне нужно добавить [эти строки] Первая строка, последняя строка? - person drs; 16.07.2014