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]