我正在关注关于嵌套表单的 railscast 教程,但代码似乎很旧,我对使用现代技术很感兴趣。问题是我想生成一个链接,该链接将作为响应添加新的文本框(新的嵌套模型实例)通过javascript.This是原始代码
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
我想替换它link_to_function
并想出了这段代码
link_to name, '#', 'data-assoc' => "#{association}", 'data-fields' => "#{fields}", class: 'add-new'
并为类编写了js onclick处理程序add-new
,它将简单地从中获取数据data-
并将其插入到html中。但是,在属性中包含该 html 似乎很难看。有没有更好的方法将该 html 传递给 js,或者可能有不同的方法来动态添加 html ?