Rails路由文件看起来很奇怪
问题描述:
我刚刚开始研究github中的rails 3项目,并且routes.rb文件似乎没有遵循通常的格式(例如:map.connect'blahblahblah')。相反,它看起来像这样:Rails路由文件看起来很奇怪
MyProject::Application.routes.draw do
root :to => 'content#index'
match '/logout' => 'sessions#destroy', :as => :logout
match '/login' => 'sessions#new', :as => :login
resources :accounts do
resources :users
member do
post :upgrade
get :cancel
end
end
namespace :dashboard do
resource :control_panel do
member do
post :show_info
end
end
end
有一些更多的信息后,但我已经排除它,为简洁起见。有人能告诉我这个文件结构是如何运作的,特别是上面的'资源'和'命名空间'之间的区别吗?
谢谢, gearoid。
答
这是用于路由的rails 3语法。 map.connect是rails 2的语法。
Documentation for rails 3 routing.
资源创造了在轨7个CRUD操作(创建,指数显示,更新,编辑,新建和销毁。)命名空间可以让你命名空间中的航路。
namespace :dashboard do
resource :control_panel do
member do
post :show_info
end
end
end
这对仪表板命名空间下CONTROL_PANEL,如创建7条CRUD路线:
http://localhost:3000/dashboard/control_panel/new
http://localhost:3000/dashboard/control_panel/show/1
答
路由在Rails 3中得到了一个非常重大的改革。似乎你应该阅读新的世界秩序。检查出Rails 3 Routing Guide。它有一个关于Resources的部分和一个关于Namespaces的部分。
还有'http:// localhost:3000/dashboard/control_panel/show_info/1'对不对? – Dty 2011-05-09 00:49:14