我想将mysql定期epxression存储到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中忽略“&lt;”之间的所有内容和“&gt;”包括标志本身。
该项目在Ruby 1.8.7和Rails 2.3.5中。
答案 0 :(得分:1)
这听起来像是在使用xss_terminate之类的东西来过滤模型,然后再保存它们。我会在你的模型定义中查找具有before_save
或其他钩子的东西,这些钩子可能会侵入性地执行此操作。
这不是标准的Rails行为。