I have a model components which belongs to a main container model. The components model has many servers and services. Basically all is fine, except it renders out two of each from because in my controller I set up the fields_for with this code:
@reference.components.build.servers.build
@reference.components.build.services.build
So it is clear why I am getting multiple forms, Is there a way to build the has_many relationships on one line? I have tried:
@reference.components.build.servers.build.services.build
and
1.times { @reference.components.build.servers.build }
1.times { @reference.components.build.services.build }
Thank you
UPDATE ->
Moving the code into a block seems to work (I was just guessing)
@reference.components.build do |f|
f.servers.build
f.services.build
end
That code is in the controller.
The key thing is to only call
components.buildonce, or else you’ll be adding one component per call to buildFor example
should work fine. The block form you’ve stumbled on achieves the same thing (I have a feeling that that was only added in 3.2, possibly one of the minor releases after 3.2)