【问题标题】:Customize nested routes for a cleaner URL in Rails?在 Rails 中为更简洁的 URL 自定义嵌套路由?
【发布时间】:2018-09-19 12:15:13
【问题描述】:

我正在开发一个网站,我正在尝试更改 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 的外观?

非常感谢您的帮助!

【问题讨论】:

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


    【解决方案1】:

    经过 2 小时的研究,我发现:

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

    完美运行,我只需要更改路由文件!

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

    谢谢大家

    【讨论】:

    • 好吧,这将不会生成 /photos/:id/portfolio_photos你想要的。它将生成此/photos/:folder_id/portfolio_photos
    • 是的,这就是我想要的,我认为这里的 :id 和 :folder_id 是一样的,因为在这种情况下,照片仍然是我文件夹的“昵称”。抱歉我的问题不清楚,我可能比我想象的更困惑!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多