Tengo un botón_para eso quiero realizar una acción PUT (solo hay una cosa que se puede actualizar sobre este recurso - se actualizará como 'reconocida' , por lo que no hay otros campos de formulario asociados con activar la acción).Rails3 button_to está llamando acción POST, intentando llamar acción PUT
Este es mi punto de vista (el controlador se da explícitamente debido a que el botón se encuentra en una vista que pertenece a otro controlador):
<%= button_to "Acknowledged", :controller => 'practice_sessions', :id => @practice_session.id, :method => :put %>
En mi archivo de rutas, el recurso ha sido declarado como un recurso reparador :
resources :practice_sessions
El controlador de este recurso tiene una acción de crear y actualizar, y el botón_al más arriba llama a la acción de crear. Quiero que llame a la acción de actualización.
Esto viene a través del registro justo antes de los fuegos de acción Crea:
Started POST "/practice_sessions?id=21&method=put" for 127.0.0.1 at 2010-11-17 08:52:46 +0000
Processing by PracticeSessionsController#create as HTML
Parameters: {"authenticity_token"=>"1EW0IlI38d0f4wST5azrCEZVZPfih7i0UvCGSF7eqbc=", "id"=>"21", "method"=>"put"}
Hola, gracias por esto. Ahora recibo 'No coincide con la ruta'/practice_sessions "'. Creo que es porque está PUTting a just/practice_sessions (como lo atestigua la URL http: // localhost: 3000/practice_sessions? Id = 26) en lugar de/practice_sessions/26 en este caso. Seguiré jugando con él, ¡pero apreciaré cualquier consejo! – pakeha
¿Cuál es la salida de 'rake routes'? – zetetic
Se ve como se esperaba. Estas son las líneas que imagino son de interés: practice_session PUT /practice_sessions/:id(.:format) {: action => "actualización",: controller => ""} practice_sessions practice_sessions poste/practice_sessions (. : format) {: action => "create",: controller => "practice_sessions"} – pakeha