gpt4 book ai didi

ruby-on-rails - RESTful 路由中的 Controller 名称可以是可选的吗?

转载 作者:行者123 更新时间:2023-12-04 07:36:55 25 4
gpt4 key购买 nike

使用标准的 map.resource 路由机制和多个​​嵌套资源,生成的路由不必要地长。考虑以下路线:

site.org/users/pavelshved/blogs/blogging-horror/posts/12345

routes.rb 中创建很容易,我确信它遵循某种有益的路由逻辑。但它太长了,而且似乎不适合人类阅读。

一个不错的改进是删除 Controller 名称,所以它看起来像:

site.org/pavelshved/blogging-horror/12345

清晰、简单、简短。它可能变得模棱两可,但就我而言,例如,我不会将任何用户命名为“用户”。

我尝试设置 :as => '',但生成的路由如下:site.org//pavelshved//blogging-horror//12345他们由标准助手。

有没有办法以这种方式映射资源,使 Controller 名称成为可选的?

最佳答案

您正在寻找资源的 :path_prefix 选项。

map.resources :users do |user|
user.resources :blogs do |blog|
blog.resources :posts, :path_prefix => '/:user_login/:blog_title/:id'
end
end

将为这种形式的所有博客生成 restful 路由:site.org/pavelshved/bogging-horror/posts/1234。您需要付出一些额外的努力才能使用 url 帮助程序,但没有什么是您自己的包装器无法快速修复的。

摆脱 url 的帖子部分的唯一方法是使用命名路由,但这些需要一些重复才能使 restful。当您尝试使用路由助手时,您会遇到同样的问题。

关于ruby-on-rails - RESTful 路由中的 Controller 名称可以是可选的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1722574/

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