Different selects in one form with same name attribute?
These are nested selects, you can try awesome_nested_set, and use it like this:

&lt;%= f.select :parent_id, 
             nested_set_options(Category, @category) {|i| "#{'-' * i.level} #{i.name}" } %&gt;