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>

我正在使用Rails 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 回答