2010-11-09 26 views
5

Después de jugar con los enlaces en Rails para ver horas he logrado obtener un enlace para invocar un método en mi controlador. Pero todavía no entiendo por qué todos mis otros intentos fallaron. Espero que puedas ayudarme con eso.Llamar a una acción del controlador con link_to

Tengo el andamio "Cars". Cuando esté en la vista Mostrar para un automóvil, le agradaría hacer clic en un enlace que invoca el método "conducir" en mi controlador de automóvil.

esto funciona:<%= link_to "Drive", drive_car_path(@car) %>

Parece que esto sólo funciona si tengo este es mi routes.rb:

resources :cars do 
    member do 
    get 'drive' 
    end 
end 

¿Por qué <%= link_to "Drive", car_path, :method => :drive %> no funciona?

¿Debo poner un GET en el archivo routes.rb para cada método que creo en mi controlador?

Parece que no encuentro ningún sitio que explique cómo usar los enlaces junto con las rutas. Ellos solo parecen estar separados. ¿Tienen algún tutorial fácilmente comprensible sobre esto?

+0

Desde la línea de comandos, prueba "rutas de rastrillo" para ver cuáles son tus opciones. –

Respuesta

10

Trate link_to "Drive", :controller => "car", :action => "drive"

Además, method es para elegir el método HTTP (GET, POST, ...). No es method como en la rutina.

Asegúrese de consultar Rails Routing from the Outside In y The Lowdown on Routes in Rails 3, ambos son recursos increíbles.

+1

Ahh, "método" tiene mucho más sentido en este momento. – deRailed

+0

Por supuesto, estaba esperando a ver si alguien más tenía algo para contribuir. Gracias. – deRailed

Cuestiones relacionadas