Does form_tag work with Simple_form?

LearningRoR picture LearningRoR · Feb 18, 2012 · Viewed 17.3k times · Source

I have a form that is using form_tag and not sure how to use it with the simple_form gem. This is how my form looks:

<%= form_tag create_multiple_prices_path, :method => :post do %>

  <% @prices.each_with_index do |price, index| %>
    <%= fields_for "prices[#{index}]", price do |up| %>
      <%= render "fields", :f => up %>
    <% end %>
  <% end %>

  <%= submit_tag "Done" %>
<% end %>

Can it be done? How would a form_tag change to use simple_form correctly? What about when using it with fields_for? A Newbie could use some help.

Thank you.

Answer

barelyknown picture barelyknown · Sep 27, 2012

You can use simple_form even if you aren't creating a form that's tied to a model.

Take this signin form as an example:

<%= simple_form_for :signin, { url: signin_path } do |f| %>
  <%= f.input :email %>
  <%= f.input :password %>
  <%= f.button :submit, "Sign In" %>
<% end %>

That will generate params like the following:

{
  ...
  "signin" => {
    "email"=>"[email protected]",
    "password"=>"[FILTERED]"},
    "commit"=>"Sign In"
   }
 }

In your controller you can reference the form fields using:

params[:signin][:email] ...