Rails 4路由:使用带动态段的命名空间

 不会做饭的我 发布于 2023-02-13 15:59

在讨论使用动态段的路由时,Ruby on Rails指南(v4.0.1)说" 你不能使用:namespace或:module with:controller path segment. "他们继续建议:" 如果你需要这样做然后使用约束:控制器匹配您需要的命名空间."

我在很多命名空间下有很多控制器.如果我可以在我的情况下使动态段工作,那么我可以使用routes.rb中的一行处理所有路由.也许是这样的:

get '/:namespace/:controller/:action'             #note: this isn't valid

但这不起作用(见上文).我宁愿保留名称空间,所以我可以在我的routes.rb文件中为每个名称空间写出一个新行,然后添加一个约束来检查URL是否要求该名称空间.这不会是世界末日.它看起来非常干燥和耻辱,因为所有的路由信息​​都巧妙地呈现在URL中.

我只是想知道是否有任何偷偷摸摸的方式似乎(对我来说)像动态段路由的功能有点差距.是否可以让路由DSL运行一个块(与Constraints不同)执行比路由匹配的布尔值yes/no更复杂的块?或许我遗漏了标准Rails路由功能的工作方式.任何建议赞赏.

更新:只是拼出一点点.我对Rails指南的理解是,我需要有这样的行:

post ':controller/:action' , controller: /user_details\/[^\/]+/
post ':controller/:action' , controller: /preferences\/[^\/]+/

...等等.如果我想要20个名称空间,那么我将需要20个这样的行.我只是想知道是否有一种更简洁的方式接近上面给出的我的1线理想.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有