2009-03-07 17 views

Respuesta

25

En los carriles 3 y anteriores:

link_to_function "Back", "history.back()" 

En los carriles 4, este método se ha eliminado. Ver el comentario de Andreas.

+5

Tenga en cuenta que link_to_function se deprecia en Rails 4.1. Más información: http://stackoverflow.com/questions/14324919/status-of-rails-link-to-function-deprecation – Andreas

+0

Gracias, gran punto. –

+0

disfrute de un 'método indefinido' link_to_function 'para # <#

163

Uso

<%= link_to 'Back', :back %> 

Esto se specificied en el RDoc here

Esto genera cierta JavaScript para navegar hacia atrás. Acabo de probarlo, y funciona.

+8

No funciona "exactamente" como un botón Atrás. Todos los datos del formulario ingresado se borran. – alamodey

+0

¡Cosas hermosas! –

+0

Sí, siento que esto solo hace que la mayoría de la gente esté a mitad de camino. Si realmente quieres emular el botón Atrás, entonces también quieres que todos los parámetros anteriores estén intactos. – ohhh

6

Se puede utilizar para generar link_to("Hello", :back)<a href="javascript:history.back()">Hello</a>.

0

Usando

link_to_function "Back", "history.back()" 

parece ser exactamente como golpear el botón Atrás en el navegador. Todos los datos del formulario ingresado todavía están allí cuando regrese.

9

en Rails 4.2, que tengo que trabajar con esto:

<a href="javascript:history.back()">Refine Search</a> 

robé esta fuera de @cpm’s answer, excepto que link_to("Refine Search", :back) no hizo el trabajo que quería, mientras que pegar en el código generado <a href="javascript:history.back()">Refine Search</a> lo hizo perfectamente.

+0

Sí, 'link_to (" Refinar búsqueda ",: volver)' solo guardará la última acción sin params y lo regresará allí donde su solución usa js – ohhh

+0

@ohhh tampoco funciona para mí: undefined método 'stringify_keys 'para: volver: Símbolo – facundofarias

+0

@facundofarias, que suena no relacionado, ¿cuál es la sintaxis exacta de su' link_to'? – ohhh

1

Esto funciona de manera similar como botón de retroceso del navegador tratar esta atención

<%= link_to 'Back', 'javascript:history.go(-1);' %>

1

atención a this comment del usuario rthbound! Como se observa, link_to con el símbolo :back no siempre generan un evento posterior “real” como si el usuario hace clic en el botón Atrás de su navegador. También puede ser un reenvío de la acción que cargó la vista actual.

El documentation for Rails 4.2.6 dice esto acerca de link_to y el símbolo :back:

El uso de un símbolo :back en lugar de un hash de opciones generará un enlace a la de referencia (un enlace de vuelta JavaScript se utiliza en lugar de una si no existe ninguno de referencia ).

0

Si no te gusta el comportamiento de link_to "cancel", :back, puedes implementar un método de ayuda que enlaza con la ruta del índice de registros o muestra la ruta. (Es decir teams_path o team_path(@team)

module CancelFormButtonHelper 
    def cancel_button(record) 
    index_path = record.class.to_s.pluralize.downcase + "_path" 
    path = record.persisted? ? record : eval(index_path) 

    link_to "Cancel", path 
    end 
end 

que luego se puede utilizar como <%= cancel_button @team %> dentro de una forma, por ejemplo.

0

Puede utilizar js window.history función.Atrás()

= link_to 'Back', onclick: "window.history.back();" 
3

Esto funciona en Rails 5.1 junto con Turbolinks.

link_to 'Back', 'javascript:history.back()'