Acabo de empezar a usar Ancestry en lugar de awesome_nested_set y me gustaría crear un formulario anidado para que pueda crear una cuenta principal y muchas cuentas secundarias en un solo formulario. El problema parece ser que Ancestry no te permite crear un hijo para un nuevo padre.Ancestry Rails anidados forma
En awesome_nested_set que podía hacer esto en la consola de rieles
a = Account.new
a.children.build
Cuando escribo a.children puedo ver que el nuevo niño en allí, aunque mi padre cuenta no se ha creado todavía. Esto me permitió mostrar un formulario con la cuenta principal y algunos niños en blanco, y luego al enviar, simplemente ignoraría cualquier niño en blanco y crearía el lote completo.
Si yo trato de hacer lo mismo con ascendencia me sale el siguiente error:
a=Account.new
a.children
Ancestry::AncestryException: No child ancestry for new record. Save record before performing tree operations.
from /home/map7/.rvm/gems/ruby-1.9.2-p180/gems/ancestry-1.2.4/lib/ancestry/instance_methods.rb:62:in `child_ancestry'
from /home/map7/.rvm/gems/ruby-1.9.2-p180/gems/ancestry-1.2.4/lib/ancestry/instance_methods.rb:132:in `child_conditions'
from /home/map7/.rvm/gems/ruby-1.9.2-p180/gems/ancestry-1.2.4/lib/ancestry/instance_methods.rb:136:in `children'
from (irb):8
from /home/map7/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.7/lib/rails/commands/console.rb:44:in `start'
from /home/map7/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.7/lib/rails/commands/console.rb:8:in `start'
from /home/map7/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.7/lib/rails/commands.rb:23:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Es esto una limitación de ascendencia? ¿Hay alguna manera diferente en la que podría crear una forma anidada usando ancestros?
Sí, no es ideal. Debido a este problema y también al hecho de que no funciona bien con el pensamiento, la esfinge y la paginación sobre un hash multidimensional parece imposible, estoy volviendo a un conjunto anidado impresionante. Me gusta la limpieza de los ancestros y sería bueno para cosas simples, pero no es para mi proyecto actual. – map7
Me he encontrado con el mismo problema al tratar de escribir pruebas con FactoryGirl. Perdón por zombie esta pregunta, pero pensé que esto podría ser interesante para algunos. – IAmNaN