我需要创建嵌套页面(比如当一页(第1页)是另一页的父页面(第2页)时,这些页面的路由如下:site.com/page1/page2
。什么宝石应该帮助我做那个?
答案 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]
我希望有所帮助。