Rails路由文件看起来很奇怪

时间:2011-05-08 22:16:39

标签: ruby-on-rails routes

我刚刚开始在github中使用rails 3项目,而routes.rb文件似乎不遵循通常的格式(例如:map.connect'blabblahblah')。相反,它看起来像这样:

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。

2 个答案:

答案 0 :(得分:3)

这是用于路由的rails 3语法。 map.connect是rails 2语法。

Documentation for rails 3 routing.

Resource为rails中的7个CRUD操作创建路由(Create,Index,Show,Update,Edit,New和Destroy。)Namespace允许您命名路由。

  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

答案 1 :(得分:0)

Rails 3中的路由进行了相当大的改革。好像你应该阅读新的世界秩序。查看Rails 3 Routing Guide。它有Resources部分和Namespaces部分。