我使用匹配:controller(/:action(/:id))
作为路由系统。
我没有看到有人使用这种类型的路由系统。所有人都在使用资源路线。
这是进行路由的最佳方式还是路由的最佳选择?
答案 0 :(得分:2)
你遗失的是RESTful routing:)
答案 1 :(得分:1)
Deprecate method "match" in routes.rb
...建议是宣布“匹配”#39;将routes.rb中的方法视为已弃用和 以后(例如rails 5.0)把它放到"私人方法"部。
它会鼓励人们使用" pure"宁静的方法 - 像put这样的动词 发布等等,将提高他们的意义和目标的知识。 (得到 用于检索数据,POST用于状态更改请求)
为什么呢? - 我的观点在http://homakov.blogspot.ru/2012/04/whitelist-your-routes-match-is-evil.html
描述
答案 2 :(得分:1)
我认为@AndreyDeineko提供了一个很好的答案。
我之前注意到match :controller(/:action(/:id))
的另一个问题是它可能会导致安全问题:
想象一下,您的application_controller.rb
方法没有标记为private
。由于所有其他控制器都继承自ApplicationController
,所以每个人都可以通过猜测名称来调用这些方法。
答案 3 :(得分:1)
除非您正在创建API,否则您可以使用所需的任何路由。如果要创建API,则需要RESTful路由。资源为您提供宁静的路线。