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'.
機能を無効にする方法、またはこれらの値をエスケープする方法を知りたいです。sprintf スタイルにエスケープしようと%s
しまし%%s
たが、うまくいきません。