routes.rb
除了打电话map.root
来设置默认路线外,我从来没有接触过。我一直满足于使用表单的 URL...
/controller/action/perhaps_an_id
它工作正常。
这会让我成为一个坏人吗?我错过了一些非常棒的东西吗?
如果我尝试采用 RESTful 设计怎么办?这是否意味着我必须编辑routes.rb
或者我可以继续愉快地忽略它?
(我试图在 The Rails Way 中阅读有关此主题的内容,但无法忍受。)
routes.rb
除了打电话map.root
来设置默认路线外,我从来没有接触过。我一直满足于使用表单的 URL...
/controller/action/perhaps_an_id
它工作正常。
这会让我成为一个坏人吗?我错过了一些非常棒的东西吗?
如果我尝试采用 RESTful 设计怎么办?这是否意味着我必须编辑routes.rb
或者我可以继续愉快地忽略它?
(我试图在 The Rails Way 中阅读有关此主题的内容,但无法忍受。)
如果您使用默认的脚手架生成资源,那么它甚至会在 routes.rb 中为您包含 restful 路由。
如果您不使用脚手架,那么它工作的原因是因为默认情况下底部的默认路由:
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
我一直在遵循最好的做法是为生产应用程序删除这些,而是确保只公开需要公开的资源。使用 Rails 2.2,您甚至可以通过以下方式限制 map.resources 中的 RESTful 方法:
map.resources :posts, :only => [:index, :show]
map.resources :comments, :except => [:edit]
您还可以使用嵌套资源、命名路由等做很多很酷的事情。文档中有很多示例(http://www.railsbrain.com/api/rails-2.2.2/doc/index.html)。 html?a=M000255&name=resources )
没有切换到 RESTful 设计并不会让你成为一个坏人,如果你觉得没有必要改变,请继续以 1.x 的方式编写你的应用程序。
大多数 Rails 开发人员都采用了 REST,并且似乎对此感到非常高兴。我认为这里没有必要重复所有支持 REST 的论点。
您确实需要在路由文件中为每个资源添加一行,例如:
map.resources :posts
您可能还想为您的营销部门创建自定义命名路由(例如:mycoolsite.com/free-trial),这些路由会转到特定的控制器和操作等。
Ryan Bates 提供了一系列截屏视频,其中介绍了您可以对路线进行的一些巧妙操作:http ://railscasts.com/tags/14
如果您要使用 RESTful,是的,您必须编辑 routes.rb 并添加您的资源,例如,
map.resources :your_resource
或者如果您有嵌套资源,
map.resources :people do |person|
person.resources :ideas do |idea|
ideas.resources :bad_ones
end
end