2010-11-24 7 views
0

je donne les résultats suivants dans mon dossier de routes:Rails de routage erreur sur la route valide

resources :timelogs do 
    member do 
    post :stop 
    end 
    collection do 
    get :start 
    end 
end 

qui produit les éléments suivants sur les « routes râteau »:

rake routes | grep stop 
stop_timelog POST /timelogs/:id/stop(.:format)  {:action=>"stop", :controller=>"timelogs"} 

Cependant, lors de la publication d'une demande à cette URL que je vois:

Started POST "/timelogs/325/stop" for 188.220.17.64 at Wed Nov 24 02:22:22 -0800 2010 
ActionController::RoutingError (No route matches "/timelogs/325/stop"): 

Tout cela semble fonctionner, mais ce n'est pas le cas. Quel pourrait être le problème ici?

+0

Avez-vous déjà découvert cela? J'ai le même problème: http://stackoverflow.com/questions/5081153/rails-routing-what-am-i-missing –

Répondre

0

En fait, lorsque vous essayez d'envoyer votre formulaire existe ressource (ticket) rails par défaut envoie la demande PUT, vous devez donc définir :method => :post chemin clair ou changement de

post :resolve, :on => :member 

à

put :resolve, :on => :member 
0

Je ne vois aucun problème avec les routes que vous avez collées et j'ai vérifié qu'elles fonctionnent pour moi dans une application de travail.

Started POST "/timelogs/123/stop" for 127.0.0.1 at 2010-11-24 11:49:25 +0000 
    Processing by TimelogsController#stop as */* 
    Parameters: {"a"=>"b", "id"=>"123"} 
Rendered text template (0.0ms) 
Completed 200 OK in 60ms (Views: 59.9ms | ActiveRecord: 0.0ms) 

Peut-être que quelque chose d'autre dans votre routes.rb est en conflit ici?