我刚刚开始在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。
答案 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部分。