Rails 3 - enrutamiento a un método de controlador

aquí está lo que estoy usando actualmente: Rails -v 3.2.3

Estoy tratando de hacer una ruta en route.rb que se enrutará a un método en mi links_controller.rb.

rutas.rb

match 'modify_points' => 'links#modify_points', :as => :modify_points

método links_controller.rb

def modify_points
  @link = Link.find(params[:id])
  @link.update_attribute :points, @link.points + params[:by].to_i if params[:by] =~ /[+|-]?1/
  render_text @link.points
end

así es como llamo al método en mi opinión:

<%= link_to('UP', modify_points_path(link, :by => 1), :remote => true) %>

sin embargo, cuando hago clic en esto UP enlace.... no pasa nada. lo que debería suceder es que los puntos de enlace aumenten en 1, sin embargo, cuando reviso la consola, mis puntos aún están en cero. ¿Estoy creando las rutas correctamente?

preguntado el 12 de junio de 12 a las 17:06

1 Respuestas

Siempre he usado algo como esto:

coincide con '/modificar_puntos' => 'enlace#modificar_puntos', :as => 'modificar_puntos'

¿Eso genera la ruta que quieres? ¿Qué muestran las rutas de rake?

Respondido el 12 de junio de 12 a las 19:06

rastrillos rutas muestra esto modify_points /modify_points(.:format) links#modify_points ¿Cuál creo que es la ruta correcta? sin embargo, no está aumentando mis puntos, así que debo haber escrito mal el método: Tim Gruns

si el modify_points el método está dentro de mi links_controller ... ¿no debería ser la ruta algo así como /links/:id/modify_points(.:format) ? .... lo siento, todavía soy nuevo en Rails - Tim Gruns

Algo es extraño. Tus rutas muestran 'links#modify_points' pero tienes 'link#modify_points' - este tipo

¡vaya, sí, eso fue un error tipográfico de mi parte, jaja, lo siento! - Tim Gruns

¡Sí, esos pequeños errores tipográficos son difíciles de ver! :) - este tipo

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.