2012-04-08 19 views
0

我是新的軌道,我創建第一個軌道應用程序(博客)按照rails's docs指南一步一步。如何區分方法爲相同的網址

但是,當我運行該應用程序時,我發現了一些我無法理解的東西。

http://localhost:3000/posts/2

隨着GET方法,這將返回後的編號爲詳細描述。

但是,當更新這個帖子,我發現表單的動作是「/職位/ 2」。

當刪除帖子時,我發現rails在主體中使用動作'/ posts/2'和方法POST創建表單元素,所以我不知道如何知道更新或刪除這篇文章?

因爲我沒有在後控制器中找到任何條件詞。

任何人都可以告訴我嗎?運行哪個動作

回答

2

路徑的獨特組合和動詞確定

執行命令rake routes在您的應用程序文件夾,你會看到路由的列表。

路徑,是您的資源的RESTful路線。

動詞GETPOSTDELETE,並PUT

我也想建議Rails Routing Guide閱讀,這也解釋了這個在很多更詳細。

這裏的示例輸出rake routes從我的應用程序之一:

 path name|verb |path        |action 
============================================================================ 
    alias_lists GET /alias_lists(.:format)    alias_lists#index 
       POST /alias_lists(.:format)    alias_lists#create 
new_alias_list GET /alias_lists/new(.:format)   alias_lists#new 
edit_alias_list GET /alias_lists/:id/edit(.:format) alias_lists#edit 
    alias_list GET /alias_lists/:id(.:format)   alias_lists#show 
       PUT /alias_lists/:id(.:format)   alias_lists#update 
       DELETE /alias_lists/:id(.:format)   alias_lists#destroy 

注意showupdatedestroy都具有相同的路徑,但不同的動詞。

show's verb = GET 
update's verb = PUT 
destroy's verb = DELETE 
+0

它的一切都在你的routes.rb。好的回答@normalocity – 2012-04-08 00:54:16

+0

但是對於路徑'/ posts/2',動詞是'POST',路徑和動詞都是相同的。如何知道刪除或更新帖子2? – hguser 2012-04-08 08:30:39

+0

動詞對'destroy'和'update'不一樣。 'destroy'動作需要'DELETE'動詞,'update'動作需要'PUT'動詞。我用一些樣品更新了我的答案。如果你的'rake routes'輸出看起來與我上面發佈的不一樣,那麼請將它發佈在你的問題中,以便我們可以看到你在說什麼。我們還需要在'config/routes.rb'中看到代碼 – jefflunt 2012-04-08 13:09:29

相關問題