2012-12-17 44 views
1

我很困惑Rails 3資源路由。我有以下我routes.rb什麼時候應該在Rails中創建命名路線?

resources :dungeons, only: [ :index, :destroy, :create, :update, :show ] 

線當我檢查什麼命名路由與rake routes創造,我得到:

dungeons GET /dungeons(.:format)         dungeons#index 
     POST /dungeons(.:format)         dungeons#create 
dungeon GET /dungeons/:id(.:format)        dungeons#show 
     PUT /dungeons/:id(.:format)        dungeons#update 
     DELETE /dungeons/:id(.:format)        dungeons#destroy 

爲什麼有隻與一個HTTP GET方法的路線命名路由?如果我想創建一個銷燬行動的鏈接,我不得不使用類似{ :action => 'destroy', :method => :delete, :id => dungeon.id }而不是簡單的destroy_dungeon_path(dungeon)。我的routes.rb有什麼問題嗎?

回答

4

您的路線文件沒有錯。這是銷燬路線:dungeon_path(id)

您必須發送DELETE請求才能觸發它。顯示,更新和銷燬得到了相同的named_route,唯一不同的是請求的類型(GET用於顯示,PUT用於更新或DELETE用於銷燬)

這裏您需要知道的所有路由在Rails3中:http://guides.rubyonrails.org/routing.html

+0

謝謝邁克爾,我已經多次閱讀鏈接,但不知何故錯過了HTTP方法thingy。 –

+2

試試這= link_to「我的鏈接」,dungeon_path(id),方法::刪除 –

+0

@GeraudMathe:是的,這是做的工作:-) –

相關問題