Ruby on Rails 嵌套模型细分

Ruby on Rails Nested Models breakdown

本文关键字:模型 细分 嵌套 Rails on Ruby      更新时间:2023-09-26

我是Ruby on Rails的初学者,也是Web开发的初学者。我试图在Railscasts第196-198集上学习Neste形式。我相当理解这一集,直到 javascript 和助手部分。我仍然可以理解javascript中的"add_fields"函数,但是当他开始链接方法时,我就不知所措了。谁能帮助和指导这个白痴?

application_jquery.js:

function remove_fields(link) {
  $(link).prev("input[type=hidden]").val("1");
  $(link).closest(".fields").hide();
}
function add_fields(link, association, content) {
  var new_id = new Date().getTime();
  var regexp = new RegExp("new_" + association, "g")
  $(link).parent().before(content.replace(regexp, new_id));
}

助手/application_helper.rb:

module ApplicationHelper
  def link_to_remove_fields(name, f)
    f.hidden_field(:_destroy) + link_to_function(name, "remove_fields(this)")
  end
  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, "add_fields(this, '"#{association}'", '"#{escape_javascript(fields)}'")")
  end
end

顺便说一下,如果有帮助,我正在使用 Rails 4。

我遇到了完全相同的问题 - 我认为问题是这需要为 rails4 重构。我已经想出了如何将其余代码更新到 rails 4(我已经在 railcast 讨论线程上发布了这个) - 但是这个 javascript 和辅助代码现在什么都不做,我们显然错过了一些东西。有人的任何帮助将不胜感激!

编辑:我将代码更新为更新的铁路广播"403 动态表单"中给出的代码,它可以工作(这是一个专业演员)。