Javascript Rails-在表单中动态生成深度嵌套的属性

Javascript Rails-在表单中动态生成深度嵌套的属性,javascript,ruby-on-rails-3,nested-forms,dynamic-forms,Javascript,Ruby On Rails 3,Nested Forms,Dynamic Forms,我还没有找到解决我特定问题的方法,或者我对它的理解不够,不知道该去哪里找 我有一个嵌套表单,根据Railscast 196/197动态生成新对象。这很好(在rails 3.0.9中),除了在更深层次(第三层)混合了has_one和has_many之外。我不确定这是否是我不理解的必要的javascript修改、关联或嵌套属性的初始化 为了简单起见,我将我的模型转换为: 有一棵树有一根树干,有许多苹果。每一个苹果都有一个内核和许多蠕虫 当我创建一棵新树时,我的创建表单会自动显示树干的字段,以及一个苹

我还没有找到解决我特定问题的方法,或者我对它的理解不够,不知道该去哪里找

我有一个嵌套表单,根据Railscast 196/197动态生成新对象。这很好(在rails 3.0.9中),除了在更深层次(第三层)混合了has_one和has_many之外。我不确定这是否是我不理解的必要的javascript修改、关联或嵌套属性的初始化

为了简单起见,我将我的模型转换为: 有一棵树有一根树干,有许多苹果。每一个苹果都有一个内核和许多蠕虫

当我创建一棵新树时,我的创建表单会自动显示树干的字段,以及一个苹果的字段,其中有一个苹果核和两个蠕虫(我喜欢我的水果填充和社交…)

我可以有条件地为主干创建一个“添加”链接,以防由于某种原因没有链接

我可以动态创建一个新苹果的添加链接。然而,当我这样做时,它不会自动初始化为一个核心和两个蠕虫。我认为这是因为它是通过javascript/helper生成的,而不是像表单本身那样,在树控制器的“new”方法中生成的

这并不是蠕虫的问题,因为苹果可以没有蠕虫,所以通常在那里有一个“添加蠕虫”链接是有意义的。然而,苹果应该有一个而且只有一个内核,所以我不想为此添加链接,它应该就在那里

理想情况下,每个“添加苹果”都会初始化一个内核和两个蠕虫

当我添加一个苹果时,我不知道如何调整javascript/helper来初始化苹果的嵌套属性(核心和蠕虫)

另外,我也不知道如何初始化apple对象,使其自动初始化一个核心对象

我不知道,如果所有这些都失败了,如何通过视图访问树控制器的apple(s)属性中的core属性,这样我就可以做一些类似于我对主干所做的事情——也就是说,“如果出于某种原因主干不存在,那么在(u)表单部分中创建一个新的(或者显示一个“添加”链接以创建一个新的)

= if @tree.trunk.blank? 
  - @tree.trunk= Trunk.new -# or 'display add button'
= f.fields_for :trunk do |builder|
  = render 'shared/trunk_fields', :f => builder
-->这个,但还有一个层次。如果我转到_apple_fields partial并尝试@tree.apple/s.core之类的操作,我会得到错误,如果我进一步进入_core_fields partial并尝试使core可用于检查空白?也是如此?。我找不到正确的语法来访问众多苹果内核中的一个。无论如何,这也不是理想的解决方案

非常感谢您的指点。我猜这个解决方案非常简单,我对这一切都太陌生了,看不到它