diff --git a/lib/nested_form/view_helper.rb b/lib/nested_form/view_helper.rb index 3e3202a5..365e900d 100644 --- a/lib/nested_form/view_helper.rb +++ b/lib/nested_form/view_helper.rb @@ -4,25 +4,20 @@ module NestedForm module ViewHelper def nested_form_for(*args, &block) options = args.extract_options!.reverse_merge(:builder => NestedForm::Builder) - output = form_for(*(args << options), &block) - @after_nested_form_callbacks ||= [] - fields = @after_nested_form_callbacks.map do |callback| - callback.call - end - output << fields.join(" ").html_safe + form_for(*(args << options), &block) << after_nested_form_callbacks end if defined?(NestedForm::SimpleBuilder) def simple_nested_form_for(*args, &block) options = args.extract_options!.reverse_merge(:builder => NestedForm::SimpleBuilder) - nested_form_for(*(args << options), &block) + simple_form_for(*(args << options), &block) << after_nested_form_callbacks end end if defined?(NestedForm::FormtasticBuilder) def semantic_nested_form_for(*args, &block) options = args.extract_options!.reverse_merge(:builder => NestedForm::FormtasticBuilder) - nested_form_for(*(args << options), &block) + semantic_form_for(*(args << options), &block) << after_nested_form_callbacks end end @@ -34,5 +29,14 @@ def after_nested_form(association, &block) @after_nested_form_callbacks << block end end + + private + def after_nested_form_callbacks + @after_nested_form_callbacks ||= [] + fields = @after_nested_form_callbacks.map do |callback| + callback.call + end + fields.join(" ").html_safe + end end end