的Ruby 1.9.2,Rails的3.1奇怪的路由問題
這裏是我的routes.rb
resources :ads
我想這個項目被認爲涵蓋幾乎所有的都在/廣告網址放置和在控制器中有相應的方法。這個奇怪的東西適用於/ ads下的所有內容,但是當我嘗試訪問ads /:id/delete時,我收到一個錯誤: 沒有路由匹配[GET]「/ ads/50/delete」
If I添加明確的條目,
match 'ads/:id/delete' => 'ads#delete'
然後一切正常
從控制器項
def delete
@ad=Ad.find(params[:id])
@ad.destroy
redirect_to '/ads'
end
一)我試圖弄清楚爲什麼把入境旅遊廣告不起作用˚F或/ ads /:id/delete b)任何關於調試路由問題的簡單方法的指針將不勝感激。
UPD: 輸出爲耙路線
c:\RailsInstaller\work\mebay>rake routes
ads GET /ads(.:format) {:action=>"index", :controller=>"ads"}
POST /ads(.:format) {:action=>"create", :controller=>"ads"}
new_ad GET /ads/new(.:format) {:action=>"new", :controller=>"ads"}
edit_ad GET /ads/:id/edit(.:format) {:action=>"edit", :controller=>"ads"}
ad GET /ads/:id(.:format) {:action=>"show", :controller=>"ads"}
PUT /ads/:id(.:format) {:action=>"update", :controller=>"ads"}
DELETE /ads/:id(.:format) {:action=>"destroy", :controller=>"ads"}
/ads/:id/delete(.:format) {:controller=>"ads", :action=>"delete"}
」它看起來像你試圖發送GET請求到你的刪除路徑,這是行不通的。「 _________________我對這些事情不太滿意,但看起來這就是發生了什麼。當我啓用顯式路由(匹配'ads /:id/delete'=>'ads#delete')時,webrick控制檯中的跟蹤會顯示GET請求:「Started GET」/ ads/56/delete「for 127.0.0.1 at 2011 -11-17 23:14:37 -0500通過AdsController處理#以HTML格式刪除參數:{「id」=>「56」}「[這一切正常]當然,我並不堅持這種做事的方式,只是想明白。 – Elijah