2013-07-31 50 views
0

我正在关注嵌套窗体上的railscast教程,但代码看起来很老,而且我对使用现代技术感兴趣。问题是我想生成一个链接,它将作为响应添加新文本框(新的嵌套模型实例)通过javascript.This原代码将数据从rails传递给js

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类,那只会抓住da ta从data-并插入到HTML。 但是,它看起来只是丑陋的html属性。是否有更好的方法将该html传递给js,或者可能采用不同的方法来动态添加html?

回答