2012-10-30 89 views
0

我正在使用Rails 3.2,並試圖製作一個範圍內的嵌套資源(不知道這是否是正確的術語)。我有幾個小組,我想每個組都有自己的一套頁面,就像這樣:Rails 3.2如何使作用域資源

/groups/1/pages/1 
/groups/1/pages/2 
/groups/1/pages/3 
/groups/2/pages/1 
/groups/2/pages/2 
/groups/3/pages/1 
/groups/3/pages/2 
/groups/4/pages/1 
etc. 

首先,我創建了一個groups控制器和pages控制器和嵌套他們像

resources :groups do 
    resources :pages 
end 

問題我得到的是,我可以通過更改URL中的:group_id來查看組2,組3和組4中的頁面。此外,頁面ID在所有組中都是唯一的,而不僅限於單個組。

接下來我試着通過做rails g controller groups/pages index show new create edit update destroy來製作一個嵌套控制器,但是我也無法讓它工作。我不知道足夠的Rails術語來弄清楚Google要做什麼。

回答

2

我認爲你正在努力完成的是associations。而不是生成控制器,您應該可以生成腳手架(其中包括模型,控制器和默認視圖)。至少,您需要組和頁面模型。

然後在您的組模型中添加has_many :pages。並在您的頁面模型中添加belongs_to :group。然後,您需要在您的頁面模型/數據庫中添加一個group_id列。

但是,如果我錯了,所有你想要做的是分組組,然後使用will_paginate寶石。

我也建議你通過Mike Hartl's tutorial。它會給你一個很好的背景,你會學習rails術語和基本技巧。