首页 > 解决方案 > 如何匹配命名空间中的所有控制器

问题描述

我在命名空间“沙盒”下有一些控制器。

/sandbox/misc/index
/sandbox/my_test/show_variables
...

我不想每次在沙盒命名空间中添加控制器和操作时都修改 routes.rb。

match ':controller/:action', via: :all

这将有效,但不仅适用于沙盒,而且适用于所有内容。如何仅将其限制为沙盒?

谢谢。

山姆

标签: ruby-on-railsroutes

解决方案


我不确定这是否是最好的解决方案。这如我所愿。

匹配 ":controller/:action", via: :all, 约束: -> req { req.original_fullpath =~ /^\/sandbox\// }

这是在 Rails 4.2 上测试的。事实证明它不适用于 Rails 5.2。


推荐阅读