The `has_many` method is already a monster; why not abstract this wrapping behavior into a separate method? Something like:
```ruby
def without_wrapper
  is_being_wrapped            = @already_in_an_inputs_block
  @already_in_an_inputs_block = false

  html = with_new_form_buffer{ yield }

  @already_in_an_inputs_block = is_being_wrapped
  html
end