2012-08-30 62 views
0

我是使用rails 3的新增功能,並遵循ruby站點中的指南構建第一個博客應用程序。嵌套模型在rails 3中的增刪改查操作

但是在應用程序中,模型「評論」沒有編輯/更新/刪除操作。

然後我嘗試添加它,但我失敗了。

而不是隻生成模式「評論」的模式,我創建模型「註釋」使用支架:

rails generate scaffold Comment commenter:string body:text post:references 

而在post.show頁,我修改它是這樣的:

他們都列出來,但是當我點擊「編輯」或「刪除」鏈接,它會嘗試跳轉到:

http://localhost:3000/comments/1 

然後我會得到錯誤:

No route matches [GET] "/comments/3/edit" or 

No route matches [DELETE] "/comments/3" 

我現在不知道。

有沒有我可以學習的任何演示框?


更新:

在routes.rb中:

resources :posts do 
    resources :comments 
end 

注:由自己手工吐露以下。由導軌產生

配置爲:

resources :posts 
resources :comments 

爲什麼我修改它是在註釋構建形式,該帖子的網址應該是「/職位/ 1 /評論」爲創造新的註釋,否則後網址將是「/評論」,它不會將帖子和評論關聯起來。

+0

請問你的routes.rb看起來像? – apneadiving

+0

@apneadiving:我更新我的帖子。 – hguser

+0

@hguser:看到我的回答中的更新 – Samiron

回答

1

您是否配置了routes?你config/routes.rb應該包含

resources :comments 

也可以運行rake routes,看看有什麼是基於你的資源配置應用程序可用的URL。

編輯:

對於演示你可以試試this video on youtube。不過,您可以在網上找到很多關於此的視頻。

編輯:

所以看來你需要在兩個方面您的評論的資源。既作爲帖子和頂級資源的嵌套資源,也是如此。所以,你可以有兩個東西放在一起,然後

resources :posts do 
    resources :comments 
end 
resources :comments 
+0

我不應該刪除我以前的評論,似乎你的回答只是它的複製/粘貼 – apneadiving

+0

@hguser正在生成腳手架,所以它會自動更新路線文件。 –

+0

亞,這是理想的情況。但路由錯誤與路由配置完全相關。所以他的路線肯定有問題 – Samiron

0

既然你已經嵌套的資源,你應該使用:

edit_post_comment_path(@post, comment) 

是更清楚:

<td><%= link_to 'Edit', edit_post_comment_path(@post, comment) %></td> 
<td><%= link_to 'Destroy', post_comment_path(@post, comment), confirm: 'Are you sure?', method: :delete %></td>