title: DRYing up a helper: wrap form_for and access local form variable
body: <p>I am trying to DRY up a bunch of forms code that has a repeating set of fields appearing at the end of each form. I wrote a helper that wraps around the form_for rails helper. But I'm starting to get lost in all the different scopes that are flying around...</p>
  
  <p>My helper goes something like this:</p>
  
  <pre><code>def simple_form_helper(record_or_name_or_array, *args, &amp;proc)
      options = ... # overriding some options, not relevant
      form_for(record_or_name_or_array, *(args &lt;&lt; options.merge(:option =&gt; "blah")) , &amp;proc)
  
      # i wish to access  &amp;proc and append the call to render 
      # to within &amp;procs scope (to access block local variable)
      concat render('shared/forms/submit')     # this obv does not work
  
  end
  </code></pre>
  
  <p>in shared/forms/_submit.erb i have bunch of fields and submit buttons that are common to a bunch of models. So I want this to be rendered from within form_for's scope so that there is access to f.</p>
  
  <pre><code> f.text_field :foo
   f.hidden_field :bar
   f.submit "Save"
  </code></pre>
  
  <p>The idea is to use it like so in the views:</p>
  
  <pre><code>simple_form_helper :object do |f|
    f.text_field :name
    f.text_field :description
    f.text_field :other_field
    # want common fields and submit button appended here
  
    # I could just call render("shared/forms/submit") here
    # but that does not seem very DRY. Or am I too unreasonable?
  end
  </code></pre>
  
  <p>So it functions like the good old form_for: makes a form for some :object with fields specific to it. And then appends the partial with fields that are common across a bunch of models.</p>
  
  <p>Is there a way to accomplish that? Perhaps, there's a better way?</p>
  
  <p>Thanks!</p>