0

application.rbで初期化されるカスタム エラー プロシージャがあります。

config.action_view.field_error_proc = Proc.new do |html_tag, object|
  error_msg = object.error_message.join(", ")
  "<span class='field_with_errors' data-error='#{error_msg}'>#{html_tag}</span>".html_safe
end

JavaScript をエスケープしたいので、次のように変更します。

config.action_view.field_error_proc = Proc.new do |html_tag, object|
  error_msg = object.error_message.join(", ")
  "<span class='field_with_errors' data-error='#{escape_javascript(error_msg)}'>#{html_tag}</span>".html_safe
end

ただし、次のエラーが表示されます。

undefined method `escape_javascript' for #<MyApp::Application:0x00000006edd2e8>

私はレール3.0を使用しています

どんなヒントでも大歓迎です。

4

1 に答える 1

3

ヘルパーを使用できるようにするには、ヘルパーを含める必要があります。これはうまくいくはずです:

include ActionView::Helpers::JavaScriptHelper

config.action_view.field_error_proc = Proc.new do |html_tag, object|
  error_msg = object.error_message.join(", ")
  "<span class='field_with_errors' data-error='#{escape_javascript(error_msg)}'>#{html_tag}</span>".html_safe
end
于 2012-10-11T02:40:11.687 に答える