ruby-on-rails - multiple - rails link_to controller action
método link_to y haga clic en evento en Rails (3)
Para seguir la respuesta de Ron si usa JQuery y lo coloca en application.js o en la sección de encabezado, debe envolverlo en una sección lista () ...
$(document).ready(function() {
$(''#my-link'').click(function(event){
alert(''Hooray!'');
event.preventDefault(); // Prevent link from following its href
});
});
¿Cómo creo un enlace de este tipo?
<a href="#" onclick="document.getElementById(''search'').value=this.value">
utilizando el método link_to
en Rails?
No pude resolverlo con los documentos de Rails .
Puede usar link_to_function
(eliminado en Rails 4.1):
link_to_function ''My link with obtrusive JavaScript'', ''alert("Oh no!")''
O, si necesitas usar link_to
:
link_to ''Another link with obtrusive JavaScript'', ''#'',
:onclick => ''alert("Please no!")''
Sin embargo, poner JavaScript directamente en el HTML generado es molesto y es una mala práctica .
En cambio, su código de Rails debería ser algo como esto:
link_to ''Link with unobtrusive JavaScript'',
''/actual/url/in/case/javascript/is/broken'',
:id => ''my-link''
Y suponiendo que está utilizando el marco Prototype JS , JS tiene esta característica en su application.js
:
$(''my-link'').observe(''click'', function (event) {
alert(''Hooray!'');
event.stop(); // Prevent link from following through to its given href
});
O si estás usando jQuery :
$(''#my-link'').click(function (event) {
alert(''Hooray!'');
event.preventDefault(); // Prevent link from following its href
});
Al utilizar esta tercera técnica, usted garantiza que el enlace seguirá hasta otra página, no solo fallará silenciosamente, si JavaScript no está disponible para el usuario. Recuerde, JS podría no estar disponible porque el usuario tiene una conexión a Internet deficiente (por ejemplo, dispositivo móvil, wifi público), el administrador del sistema del usuario o del usuario lo deshabilitó o se produjo un error inesperado de JS (es decir, error del desarrollador).
Solo usa
=link_to "link", "javascript:function()"