Rails 3.1 escape_javascript无法正常工作

时间:2011-10-02 20:04:32

标签: javascript ajax ruby-on-rails-3.1

我有以下代码:

  def link_to_add_fields(name, f, association)
    new_object = f.object.class.reflect_on_association(association).klass.new
    fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
      render(association.to_s.singularize + "_fields", :f => builder)
    end
    link_to_function(name, h("add_fields(this, '#{association}', '#{escape_javascript(fields)}')"))
  end

当它运行时,它应该复制前一个表单字段。当我点击我的链接添加一个新字段时,它只是呈现HTML内联(它已完全转义并可查看)。我发现之前的一个问题,说这是Rails 3.1.0rc2的一个问题,但我正在运行当前3.1.0版本的rails。所以我不确定我的配置是否有这个问题,或者问题是否已经在rails中重新出现。

1 个答案:

答案 0 :(得分:0)

尝试更改此行

link_to_function(name, h("add_fields(this, '#{association}', '#{escape_javascript(fields)}')"))

到这个

link_to_function(name, "add_fields(this, '#{association}', '#{escape_javascript(fields)}')", :remote => true)

我认为* rails 3.1.x会自动转义