ошибка в форме из-за utf8 = ✓ с мета-поиском - PullRequest
4 голосов
/ 02 сентября 2011

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

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

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

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

Я использую рельсы 3.0.9 и ruby ​​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):

Ответы [ 2 ]

3 голосов
/ 02 сентября 2011

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

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

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

0 голосов
/ 02 сентября 2011

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

Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...