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.