将数据从rails传递到js

时间:2013-07-31 15:45:29

标签: javascript ruby-on-rails ruby-on-rails-3

我正在关注嵌套表单的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'

并为add-new类编写了js onclick处理程序,它只是从data-中获取数据并将其插入到html中。 然而,看起来只是丑陋的html内部属性。有没有更好的方法将该html传递给js,或者可能有不同的方法来动态添加html?

1 个答案:

答案 0 :(得分:0)

签出Dynamically add fields in rails with out nested attributes最后一个答案我有一个嵌套关联,但是我没有使用accepts_nested_attributes_for来处理控制器中的关联。我喜欢这个,因为我正在处理Ruby中的逻辑(我感觉更舒服)而不是JS。