gpt4 book ai didi

ruby-on-rails - 没有资源名称的 Rails 路由

转载 作者:行者123 更新时间:2023-12-03 15:52:31 24 4
gpt4 key购买 nike

我的 rails 应用程序有一个 Section 模型和一个 Page 模型。一个部分有很多页。

# section.rb
class Section < ActiveRecord::Base
has_many :pages
end

# page.rb
class Page < ActiveRecord::Base
belongs_to :section
end

假设我有一个带有 slug 'about' 的部分,并且该部分有三个带有 slug 'intro', 'people', 'history' 的页面,具有典型路由的 url 可能如下所示:
http://example.com/sections/about/pages/intro
http://example.com/sections/about/pages/people
http://example.com/sections/about/pages/history

设置路线以便我可以使用这些网址的最佳方法是什么:
http://example.com/about/intro
http://example.com/about/people
http://example.com/about/history

最佳答案

为了从 sections 的所有路由中删除“部分”和“页面”和 pages ,你可以使用:

resources :sections, path: '' do
resources :pages, path: ''
end

重要提示:请务必将其放在路线页面的底部。 例如,如果您有一个 example Controller ,并说出您的 routes.rb出现如下:
resources :sections, path: '' do
resources :pages, path: ''
end
resources :examples
root 'home#index'

有了上面的设置,去 http://example.com/examples会将您发送到“示例” section , 而不是 examples#index ,然后转到 http://example.com/会将您发送至 sections#index而不是 home#index .所以,上面的配置应该是这样的:
resources :examples
root 'home#index'
resources :sections, path: '' do
resources :pages, path: ''
end

关于ruby-on-rails - 没有资源名称的 Rails 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23459140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com