vistas una tablas rendimiento recomendaciones queries porque optimizador lenta las dañan cuello consulta consejos como botella agilizar ruby-on-rails ruby-on-rails-3

ruby on rails - una - Eliminar enlace envía "Obtener" en lugar de "Eliminar" en la vista de Rails 3



view lenta mysql (6)

Asegúrese de que su sección <head> en el diseño incluya lo siguiente:

<%= javascript_include_tag :defaults %> <%= csrf_meta_tag %>

En Rails 3, las solicitudes de eliminación se están manejando con la ayuda de JavaScript para garantizar que la solicitud se envía correctamente. Si no tiene las metaetiquetas csrf y el código JavaScript requerido, eliminar enlaces no funcionará. Los archivos JavaScript :defaults incluyen, entre otros, prototype.js y application.js. Este último contiene las cosas que hacen que el enlace funcione, pero se basa en el marco Prototype.

Si no desea utilizar las bibliotecas predeterminadas de Prototype JavaScript, existen puertos de application.js para muchos otros frameworks. here puede encontrar jQuery uno, por ejemplo.

Los botones seguirán funcionando independientemente de JavaScript, ya que el código HTML generado con button_to incluye toda la información necesaria por sí mismo. Es por eso que está viendo que el botón funciona mientras que el enlace no funciona.

Estoy usando Rails 3 y tengo una página que muestra una lista de publicaciones de la base de datos. Me gustaría poder eliminar una publicación de un enlace.

El segundo ejemplo a continuación funciona, pero el primero no. ¿Alguien sabe por qué el primero no funcionará? Mi vista contiene:

# this link sends a "GET" request which asks for the #show function <%= link_to ''Delete'', post, :method => :delete %> # this link sends the proper "DELETE" request which asks for the #destroy function <%= button_to ''Delete'', post, :method => :delete %>

Mi archivo de rutas contiene lo siguiente:

resources :posts


En mi caso, estaba usando siguiente.

<%= javascript_include_tag :defaults %> <%= csrf_meta_tag %>

También estaba usando jQuery al incluir jQuery justo debajo del prototipo JS predeterminado. Eso estaba causando algún tipo de conflicto.


Esto funcionará El problema es el hecho de que necesita pasarlo por el camino correcto para que la ruta lo obtenga.

<%= link_to ''Delete'', post_path(post.id), :method => :delete %>



Prueba esto ... es un cambio simple ...

agregue esto a su archivo route.rb

get ''/ lists /: list_id / comments /: id'' => ''comments # destroy''

Hice este cambio y ahora está funcionando ...