我需要制作嵌套页面(比如当一个页面(page1)是另一个页面(page2)的父级时,这些页面的路由看起来像:site.com/page1/page2
。什么宝石应该帮助我做到这一点?
问问题
99 次
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 回答