2012-10-30 57 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术语和基本技巧。