bjg realmente respondió esto, pero pensé que me gustaría extraer la parte pertinente y amplificar con un ejemplo.
Simplemente proporcione a su vista una variable de cadena cuyo valor sea una ruta de Rails con nombre, y luego use ese valor en el Javascript de su formulario. Un ejemplo que ilustra cómo un método controlador puede especificar la ruta de otro método, al ser abierto por el script en la prensa de un botón:
Archivo config/routes.rb
:
...
resource :foo, :only => [:show, :reset]
...
match 'foo_reset_path' => 'foo#reset'
Al mando rake routes
ahora producirá, entre otra salida, esto:
foo GET /foo(.:format) foo#show
foo_reset_path /foo_reset_path(.:format) foo#reset
foo_reset_path
es lo que vamos a utilizar aquí, pero por supuesto puede utilizar este método con cualquier camino carriles llamada.
Archivo app/controllers/foo_controller.rb
:
...
def show
@reset_path = "foo_reset_path" # simply the string you'd use in the
# Rails code for opening the path
...
end
...
def reset
... # reset some variables to their default values
redirect_to foo_path # causes the show method to be called, and the HTML
# page to be redisplayed
end
Archivo app/views/foo/show.html.erb
:
...
<input type="hidden" id="reset_path" name="reset_path" value="<%= @reset_path %>">
...
<script>
$(document).ready(function() {
...
/* Hang functionality on the "Reset form" button. */
$('#reset_button').click(function() {
var reset_path = $('#reset_path').val();
window.open(reset_path, "_self")
});
...
})
</script>
estoy usando jQuery aquí, pero la idea básica debe ser clara. La secuencia de comandos agrega un gancho al elemento de botón cuyo ID es reset_button
, por lo que al hacer clic en el botón se llama al método reset
de foo_controller
.
también Miré http://tore.darell.no/pages/javascript_routes – kishore
do quieres acceso a todas las rutas en JavaScript como verías con decir 'rutas de rastreo '? – Anurag