控制器的命名空间或前缀

时间:2012-01-02 20:27:29

标签: ruby-on-rails namespaces

我的应用程序中有两个Devise模型(Doctor和Patient)。我每个都有两套不同的控制器。目前我只是为每个控制器添加前缀,如下所示: PatientRegistrationsController,DoctorRegistrationsController等

但现在我正在考虑使用命名空间来实现更好的应用程序组织和结构。例如,Patient :: RegistrationsController,Doctor :: SessionsController。

帮助我决定我应该使用哪种策略控制器 - 名称空间或前缀名称。是否存在任何名称空间?

1 个答案:

答案 0 :(得分:1)

请参阅http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

您可以将控制器放在不同的文件夹中,并通过不同的路径访问它们......

f.e ..

namespace :doctor do
  resources :data_entries
end
# => http://test.com/doctor/data_entries
# => controller is in app/doctor/data_entries_controller.rb

namespace :patient do
  resources :data_entries
end
# => http://test.com/patient/data_entries
# => controller is in app/patient/data_entries_controller.rb