0

我需要制作嵌套页面(比如当一个页面(page1)是另一个页面(page2)的父级时,这些页面的路由看起来像:site.com/page1/page2。什么宝石应该帮助我做到这一点?

4

2 回答 2

0

我不知道是否有这方面的宝石,但我会从如下路线开始:

get 'pages/*parents/:page', to: 'pages#show'

URLsite.com/pages/page1/page2/page3将被解析为参数:

params[:parents] = 'page1/page2'
params[:page] = 'page3'

现在您可以执行以下操作:

parent_names = params[:parents].split('/')

不确定这是否是你想要的,但我希望它能让你开始。

于 2013-10-25T10:20:04.520 回答
0

这不是常见的良好做法。我并不是说您不应该这样做,因为我对您的业务逻辑一无所知,但通常的做法是

/model_name/:id/model_name/:id

最多有一层嵌套。这意味着没有这样的事情

/model_name/:id/model_name/:id/model_name/:id

一般来说,我倾向于最短路径。因此,如果资源可以仅用它来识别id,我会选择/model_name/:id. 这通常会导致诸如

resources :post do
  resources :comments, only: [:new, :create]
end

resources :comments, only: [:show, :edit, :update, :destroy]

我希望这有帮助。

于 2013-10-25T10:28:26.647 回答