如何在助手中使用unobustrive JS重构link_to_function?

How to refactor link_to_function using unobustrive JS in helper?

提问人:tomekfranek 提问时间:3/15/2013 更新时间:1/18/2015 访问量:200

问:

我正在使用我的方法之一:link_to_functionApplicationHelper

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 + "_fields", :f => builder)
  end
  link_to_function(name, ("add_fields(this, '#{association}', '#{escape_javascript(fields)}')").html_safe)
end

由于它将在 Rails 4 中被弃用,我想摆脱使用 Unobustrive JS。怎么做呢?link_to_function

JavaScript Ruby-on-Rails Ruby 重构 unobtrusive-javascript

评论

0赞 fmendez 3/15/2013
也许这会有所帮助:stackoverflow.com/questions/8617384/......

答:

0赞 Hamish 1/18/2015 #1

我知道这是一个老问题,但我很高兴用与我完全相同的代码片段遇到这个问题......祝福你 Ryan Bates 和 RailsCasts!

无论如何,这被证明是一个非常容易的重构。您只需要将该函数作为 link_to 的 'onclick' 参数传递:

link_to(name, '#', onclick: "add_fields(this, '#{association}', '#{escape_javascript(fields)}')")