text_field simple rails form_tag form example ruby-on-rails-3 simple-form

ruby-on-rails-3 - form_tag - simple form rails



¿Hay alguna forma de pasar parámetros al hacer clic en el botón enviar en la vista simple_form en los rieles 3.2.12? (3)

En la vista simple_form, el botón de envío es así:

<%= f.button :submit, ''Save'' %>

Estamos intentando pasar una subaction parámetros al hacer clic en el botón Save . Los params[:subaction] deben tener el valor de ''actualizar'' después de hacer clic en el botón. Aquí está lo que probamos a la vista pero no funcionó:

<%= f.button :submit, ''Save'', :subaction => ''update'' %>

¿Hay una manera de pasar un valor en params[:subaction] al hacer clic en el botón Save ?


Al especificar el f.button :button, type: ''submit'' , podemos usar los atributos de name y value siguiente manera para enviar con un solo parámetro. En particular, el valor enviado (por ejemplo, "pastel") puede ser diferente del texto del botón (por ejemplo, "El mejor pastel").

_form.html.erb

<%= f.button :button, ''The Best Cake'', type: ''submit'', name: ''dessert_choice'', value: ''cake'' %> <%= f.button :button, ''The Best Pie'', type: ''submit'', name: ''dessert_choice'', value: ''pie'' %>

Controlador

def controller_action dessert_choice = params[:dessert_choice] # ''cake'' or ''pie'' end

Este enfoque evita la necesidad de entradas ocultas como @dax se menciona en el comentario anterior.

Probado en forma simple 3.3.1 con rieles 4.2.


Utilice la opción de nombre y valor.

<%= f.button :submit , name: "subaction",value: "update"%>

En su controlador obtendrá params [: subaction] con el valor "update"


como señala Dax,

<%= hidden_field_tag(:subaction, ''update'') %> <%= f.button :submit, ''Save'' %>

Esto proporcionará el valor de cadena ''actualización'' a la acción del controlador enrutado a través del campo oculto. Entonces puede ser recuperado por el controlador con

params[:subaction]