rails links link_to link how _blank ruby ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2 link-to

links - Cómo agregar mensaje de confirmación con link_to Ruby on rails



rails link_to do (7)

En primer lugar, debe verificar que su diseño tenga jquery_ujs . La mejor práctica para hacerlo incluyéndolo en su aplicación principal.js:

//= require jquery_ujs

Compruebe que ha incluido application.js en su diseño:

= javascript_include_tag :application

Mientras que, en el modo de desarrollo, vea su fuente html y verifique que jquery_ujs.js exista.

Ejecute su servidor y verifique que su etiqueta de enlace tenga un valor de confirmación de datos , por ejemplo:

<a href="/articles/1" data-confirm="Are you sure?" data-method="delete">

Si todos esos pasos son correctos, ¡todo debería funcionar!

Nota: revisa este RailsCast http://railscasts.com/episodes/136-jquery-ajax-revised

Quería agregar un mensaje de confirmación en la función link_to con Ruby.

= link_to ''Reset message'', :action=>''reset'' ,:confirm=>''Are you sure?''

¿Alguna idea de por qué no está funcionando?


Mira tu javascript_include_tag y debería funcionar bien:

<%= link_to("Reset message", :method => :reset, :class => ''action'', :confirm => ''Are you sure?'') %>



No puedo recordar cómo se hizo esto en Rails 3, pero en Rails 4 puedes simplemente:

<%= link_to ''Reset message'', { controller: ''your_controller'', action: ''reset'' }, data: {confirm: ''Are you sure?''} %>


Podría estar equivocado, pero no especifica un controlador junto con la opción :action . ¿Has intentado lo siguiente? Suponiendo que tiene un recurso de messages configurado en su ruta:

link_to ''Reset'', message_path(@message), :confirm => ''Are you sure?''

EDITAR : Arriba está en desuso. Rails 4.0 ahora acepta el aviso como un atributo de datos. Ver el documento here (Gracias @Ricky).

link_to ''Reset'', message_path(@message), :data => {:confirm => ''Are you sure?''}


Primero, debemos entender qué responde el paquete Js a este tipo de alertas en la aplicación de rieles. Entonces, para esto, el paquete jquery_ujs es responsable de mostrar las alertas en los rieles.

Por lo tanto, debe tener jquery & jquery_ujs en su archivo application.js.

//= require jquery //= require jquery_ujs

Ahora, debemos confirmar que el archivo application.js está incluido en el diseño requerido o no. Por defecto, el archivo de diseño permanece en application.html.erb en la carpeta de vistas de diseño.

<%= javascript_include_tag ''application'' %>

A continuación, el enlace debe tener los atributos de confirmación de datos y método de datos como

<a href="/message/1/reset" data-method="delete" data-confirm="Are you sure?">

En erb, esto se puede escribir como,

= link_to ''Reset'', message_path(@message), data: {method: ''delete'', confirm: ''Are you sure?''}

Esto debería funcionar si todo está alineado de la misma manera.


Prueba esto:

= link_to ''Reset message'', {:action=>''reset''}, :confirm=>''Are you sure?''

o para ser más claro

= link_to(''Reset message'', {:action=>''reset''}, {:confirm=>''Are you sure?''})

Consulte http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to

Verá que hay 3 parámetros, cuando está dando url como opciones como {:action => ..., :controller => ...}

link_to(body, url_options = {}, html_options = {})

En ruby, si el último parámetro en una llamada a función es un hash, no necesita envolverlo en {} caracteres (en otras palabras, puede omitir eso en el caso, si el hash es el último parámetro), entonces el código que tiene provisto se interpretará como una llamada a función con solo 2 parámetros, cadena ''Reset message'' y {:action=>''reset'', :confirm=>''Are you sure?''} hash y el :confirm=>''Are you sure?'' se interpretará como url_option lugar de html_option