我在link_to_function
方法之一中使用ApplicationHelper
:
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
。怎么做? 最佳答案
我知道这是一个老问题,但是我很乐意使用与我完全相同的代码片段来遇到这个问题……祝福您Ryan Bates和RailsCasts!
无论如何,这实际上是一个非常容易的重构。您只需要将该函数作为link_to的“ onclick”参数传递即可:
link_to(name, '#', onclick: "add_fields(this, '#{association}', '#{escape_javascript(fields)}')")