在Rails中自定义嵌套路由以获得更整洁的URL?

时间:2018-09-19 12:15:14

标签: ruby-on-rails url routes nested-routes

我在一个网站上工作,并且试图更改URL对用户的外观。 由于我将所有资源都嵌套在一起,因此我很难做自己想做的事情。

此刻,这是我的路线

 resources :folders do
   resources :portfolio_photos
 end

我已将其更改为该名称,它适用于文件夹索引。

 resources :folders, except: [:index] do
   resources :portfolio_photos
 end
 get '/photos', to: 'folders#index'

唯一的问题是我也希望“ portfolio_photos”网址看起来像这样

  /photos/:id/portfolio_photos 

(而且我不想更改模型名称)。

我尝试过:

get '/photos/:id/portfolio_photos', to: 'portfolio_photos#index' 

但它不起作用。

更好的办法是获得一个看起来像表面的完全自定义URL:www.xxxx.com/portfolio_photos 即使所有内容都嵌套在后端中。 有没有办法在不影响整个后端的情况下更改url的外观?

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

经过2个小时的研究,我发现了这一点:

resources :folders, :path => 'photos' do
   resources :portfolio_photos
end

工作完美,我只需要更改路线文件即可!

发布它可能会帮助某人:)

谢谢大家