type text_field_tag text_area_tag tag rails number form_tag form for ruby-on-rails ruby-on-rails-3.1 simple-form

ruby on rails - text_field_tag - ¿Form_tag funciona con Simple_form?



text field tag ruby on rails (4)

Puede usar simple_form incluso si no está creando un formulario vinculado a un modelo.

Tome este formulario de inicio de sesión como un ejemplo:

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

Eso generará params como el siguiente:

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

En su controlador, puede hacer referencia a los campos del formulario usando:

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

Tengo un formulario que está utilizando form_tag y no estoy seguro de cómo usarlo con la gema simple_form . Así es como se ve mi forma:

<%= 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 %>

Se puede hacer? ¿Cómo cambiaría form_tag para usar simple_form correctamente? ¿Qué pasa cuando se usa con fields_for ? Un novato podría necesitar algo de ayuda.

Gracias.


Puedes evitar el uso de

params[:signin][:email]

utilizando

<%= f.input :email, input_html: { name: "email" } %>

asi que

params[:email]


como @barelyknown dijo que puedes usar simple_form incluso sin modelo. También puedes usar simple_field_for o simple_field_for

<%= simple_form_for :transaction_limits, {url: create_multiple_prices_path, method: :post} do |f| %> <% @prices.each_with_index do |price, index| %> <%= f.fields_for "prices[#{index}]", price do |up| %> <%= render "fields", :f => up %> <% end %> <% end %> <%= f.submit "button" %> <% end %>


simple_form es un contenedor alrededor de form_for , no form_tag . Puede usar simple_form_for lugar de form_for , pero form_tag solo crea etiquetas <form> con contenido específico, no es relevante para la forma simple.