Символы между угловыми скобками (<>) удалены в базе данных? - PullRequest
2 голосов
/ 07 декабря 2011

Я хочу сохранить регулярное выражение mysql в поле базы данных mysql.В частности, я хочу сохранить границы слов в базу данных.Например:

[[:<:]]my expression here[[:>:]]

Если я поместил это значение непосредственно в базу данных (например, с помощью Sequel Pro), значение будет сохранено правильно.

Проблема возникает, когда я хочу сохранить это значение черезRuby on Rails:

my_instance.sql_expression = "[[:<:]]my expression here[[:>:]]"
my_instance.save 
=> true

Но значение, которое фактически сохраняется в базе данных, выглядит следующим образом:

my_instance.sql_expression
=> "[[::]]"

Кажется, что в строке Rails игнорируется все, что находится между "<" и "> "включая сами знаки.

Проект на Ruby 1.8.7 и Rails 2.3.5.

1 Ответ

1 голос
/ 24 декабря 2011

Похоже, вы используете что-то вроде xss_terminate , чтобы отфильтровать ваши модели перед их сохранением. Я бы посмотрел в определении вашей модели что-то, что имеет before_save или другой хук, который может навязчиво делать это.

Это не стандартное поведение Rails.

...