【发布时间】:2012-09-10 00:36:41
【问题描述】:
使用 Rails 2.3.4、Ruby 1.8.7。
我有一个 ActiveRecord 验证,我想在错误消息中包含用户的输入。简化版的我正在做这样的事情:
record.errors.add attr, "'#{calculated_value}' is not valid.'
其中calculated_value是用户输入的较大值的一部分。
我发现如果用户输入的值包含某些字符,就会发生奇怪的事情。如果calculated_value 包含%s,则%s 将替换为用户输入的完整值。如果calculated_value 包含..,我得到:
ArgumentError - interning empty string from /var/lib/gems/1.8/gems/activesupport-2.3.4/lib/active_support/vendor/i18n-0.1.3/lib/i18n.rb:196:in `to_sym'.
我想知道如何禁用该功能或如何转义这些值。我尝试将%s 转义为%%s,sprintf 风格,但这不起作用。
【问题讨论】:
标签: ruby-on-rails validation activerecord ruby-on-rails-2