Rails: проигрыш в кавычках в параметрах поста - PullRequest
3 голосов
/ 18 июня 2010

Я добавляю полнотекстовый поиск на свой сайт Rails и позволяю пользователям вводить двойные кавычки в поле ввода поиска.Проблема в том, что двойные кавычки, похоже, отфильтровываются Mongrel, и поэтому я никогда не получаю эти кавычки в значениях хэша params.Как я могу предотвратить это?Я использую Rails 2.3.8.

[Редактировать: добавлены данные анализа]

В Firebug я вижу, что параметр публикации корректно размещается с кавычками:

search_criteria "great post"

В журнале разработки, однако, кавычкиушли:

Обработка поиска PostsController # (для 127.0.0.1 в 2010-06-18 17:28:45) [POST] Параметры: {"search_criteria" => "great post", "action "=>" search "," authenticity_token "=>" xUaOc1IAyjQmKn1NGqBpPVaTBmD4ayPq / lUJsqJGCxY = "," controller "=>" posts "}

И когда я регистрирую содержимое и размер параметров [:search_criteria] в контроллере я получаю:

search criteria = great post
search criteria size = 10

[Edit: new discovery] Эта проблема, описанная выше, не возникает, когда строка в кавычках завершается или предшествует другой символ, например пробел.

Ответы [ 2 ]

3 голосов
/ 14 декабря 2010

Видимо, это ошибка в стойке 1.1.0.Исправление [ патч здесь ] было сделано для стойки 1.2.0.Тем не менее, actionpack (и, следовательно, рельсы) с 2.3.6 по 2.3.10 зависят от стойки ~> 1.1.0, поэтому у них всех есть эта проблема.

Потенциальные решения, которые, скорее всего, действительно происходят, заказываются первыми ...

  • Обновите свою копию стойки на основе вышеуказанного исправления
  • Обновите до Rails 3

В этом вопросе есть советы о том, какпатч-стойка.

0 голосов
/ 11 апреля 2011

Эта страница содержит пошаговые инструкции о том, как залатать стойку через исходный код вашего приложения;не нужно возиться с драгоценными камнями.Для меня это сработало (Rails 2.3.10).

...