我第一次开始使用带名称空间的路由。我理解以下内容的概念。
namespace :company do
namespace :project, defaults:{format: 'json'} do
resources :registration
end
end
我的控制器看起来像这样
class Company::Project::RegistrationController < ApplicationController
before_filter :authenticate_user!
#responds_to :json
def register
end
def entry
end
end
所以在资源中我想为register
和entry
定义路线,但我找不到任何真正告诉我如何做到这一点的路线。我知道如果我没有使用命名空间,那么我通常会在我的路径文件中做这样的事情。
match 'company/project/registration/register' => "Registration#register"
有没有办法在命名空间块中执行此操作?
----------变更后-------------- 在第一个答案中进行以下建议更改后,这就是运行&gt; rake路由给我的
register_company_project_registration POST /company/project/registration/:id/register(.:format) company/project/Registration#register {:format=>"json"}
entry_company_project_registration POST /company/project/registration/:id/entry(.:format) company/project/Registration#enrty {:format=>"json"}
company_project_registration_index GET /company/project/registration(.:format) company/project/registration#index {:format=>"json"}
POST /company/project/registration(.:format) company/project/registration#create {:format=>"json"}
new_company_project_registration GET /company/project/registration/new(.:format) company/project/registration#new {:format=>"json"}
edit_company_project_registration GET /company/project/registration/:id/edit(.:format) company/project/registration#edit {:format=>"json"}
company_project_registration GET /company/project/registration/:id(.:format) company/project/registration#show {:format=>"json"}
PUT /company/project/registration/:id(.:format) company/project/registration#update {:format=>"json"}
DELETE /company/project/registration/:id(.:format) company/project/registration#destroy {:format=>"json"}
答案 0 :(得分:4)
我希望我理解你。您想为子路线添加其他路线吗?
方法可能是这样的:
namespace :company do
namespace :project, defaults:{format: 'json'} do
resource :registration do
member do
get 'register', :to => 'registration#register', :as => :register
get 'entry', :to => 'registration#enrty', :as => :entry
end
end
end
end