How to change the order of nested forms being rendered (especially blank forms)

Updated . Posted . Visible to the public.

Generally for nested forms, a blank form is placed below all other existing object forms. If you would like to change the position of the blank form(s) you can reorder the object's one-to-many association. For example you can put the blank form on top with the following snippet:

actors = movie.actors
actors.build
actors.unshift(actors.pop(1)) # won't work with Rails 4+

Because build_for_form creates new objects and appends them to the one-to-many association collection object you only have to reorder the collection objects.

Sorting with Rails 3+

= form.fields_for :children, @parent.children.sort_by(&:name) do |fieldsform|
  …
Profile picture of Martin Straub
Martin Straub
Last edit
Martin Straub
License
Source code in this card is licensed under the MIT License.
Posted by Martin Straub to makandra dev (2011-10-12 07:27)