user3868832
user3868832

Reputation: 618

routing form submission to different controller

problem: I have a form but the submit button doesn't do anything.

i instantiate the class the form is for in the employee_controller controller.

  def employee
    @body_class = "employee membership"
    @employee_contact_form = CorporateContactForm.new
  end

I create the form in the page the above controller action serves

  = simple_form_for [@employee_contact_form] do |f|
    = f.input :firstname
    = f.button :submit

In my routes I set the resources for the contact forms

  resources :corporate_contact_forms

I then have a controller that serves the form

class CorporateContactFormsController < ApplicationController

  def create
    raise
  end

I am aware there is no code in the corporatecontactcontroller, but the submit button should at least fire to an error. It doesn't do anything.

This feels like such a simple problem, and surely it is. What am I missing?

update

html output

<form>
              <form accept-charset="UTF-8" action="/corporate_contact_forms" class="simple_form new_corporate_contact_form" id="new_corporate_contact_form" method="post"><div style="display:none"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="7iMwWQOuyzV3jJt4jTtr9MGvI129hPaG+m+Pe2D3YyM=" /></div>        <div class="input string optional corporate_contact_form_firstname"><label class="string optional" for="corporate_contact_form_firstname">Firstname</label><input class="string optional" id="corporate_contact_form_firstname" maxlength="255" name="corporate_contact_form[firstname]" size="255" type="text" /></div>
                      <input class="button" name="commit" type="submit" value="Create Corporate contact form" />
              </form>
            </form>

Upvotes: 1

Views: 186

Answers (1)

joseramonc
joseramonc

Reputation: 1931

According to the documetation (http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for), you can do something like this to force the form to go to CorporateContactFormsController#create

<%= simple_form_for @employee_contact_form, url: corporate_contact_forms_path, method: :post do |f| %>
    # awesome code...
<% end %>

Also I'm not sure if the f.button :submit has something to do, the default for submitting is f.submit

Upvotes: 1

Related Questions