Rails路由文件看起来很奇怪

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 
+0

还有'http:// localhost:3000/dashboard/control_panel/show_info/1'对不对? – Dty 2011-05-09 00:49:14

路由在Rails 3中得到了一个非常重大的改革。似乎你应该阅读新的世界秩序。检查出Rails 3 Routing Guide。它有一个关于Resources的部分和一个关于Namespaces的部分。