带路由的嵌套页面

时间:2013-10-25 09:24:18

标签: ruby-on-rails

我需要创建嵌套页面(比如当一页(第1页)是另一页的父页面(第2页)时,这些页面的路由如下:site.com/page1/page2。什么宝石应该帮助我做那个?

2 个答案:

答案 0 :(得分:0)

我不知道是否有这样的宝石,但我会从一条路线开始:

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

网址site.com/pages/page1/page2/page3将被解析为参数:

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

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

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

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

答案 1 :(得分: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]

我希望有所帮助。