为什么不推荐Rails遗留路由匹配?

时间:2012-08-10 21:30:25

标签: ruby-on-rails

默认路由文件包含以下段:

  # This is a legacy wild controller route that's not recommended for RESTful applications.
  # Note: This route will make all actions in every controller accessible via GET requests.
  # match ':controller(/:action(/:id))(.:format)'

那么,当格式为':controller(/:action(/:id))(:format)'时,让Rails假设控制器,操作和视图显示的问题究竟是什么?我的意思是,对于像嵌套这样的更具体的事情,我总是可以使用特定的路线...

3 个答案:

答案 0 :(得分:2)

这只是一种常识性的安全措施。

它强制设计人员将GET请求列入白名单,以便应用程序不会无意中将表或记录的内容泄露给恶意用户。

答案 1 :(得分:1)

如果允许开发人员懒惰,他们就会。我们非常擅长优化工作。

不明确路由可能会帮助您每次拥有一个新控制器时节省5秒,但对于新开发人员而言,这将是一个令人头痛的问题,因为他们不熟悉您的代码库,因此不知道如何粘合。他们将不得不对您的观点控制器进行逆向工程。

在那里。不漂亮。

明确表达通常会更好。

答案 2 :(得分:1)

因为不是每个人都在构建下一个Facebook,而我们中的一些人为了好玩或制作我们仅在我们的开发设备上使用的简单应用程序,或者根本不是一个屁股而且回答"一个问题实际上有一个答案,而不是让自己看起来聪明和重要:

match '/:controller(/:action(/:id))(.:format)', to: "#{:controller}#{:action}", via: [:get, :post]