2012-01-02 40 views
1

我在我的應用程序中有兩個設計模型(醫生和患者)。我有兩套不同的控制器。目前我只是在每個控制器的前綴這樣: PatientRegistrationsController,DoctorRegistrationsController等控制器的命名空間或前綴

但現在我正在考慮使用命名空間更好的應用程序的組織和結構。例如,Patient :: RegistrationsController,Doctor :: SessionsController。

幫我決定我應該使用哪種策略與我的控制器 - 名稱空間或前綴名稱。有沒有命名空間的陷阱?

+1

使用命名空間,多使他們不衝突與模型:患者:: RegistrationsController,醫生:: SessionsController。我通常這樣做,並在相應的命名空間中添加該部分的所有控制器 – clyfe 2012-01-02 20:32:40

+0

非常感謝!一個問題:你有與InheritedResources gem一起玩的命名空間的經驗嗎? – tipugin 2012-01-02 21:13:12

+0

正如我所看到的,這裏描述了一些問題http://gunnertech.com/2011/09/rails-3-on-namespaces-rspec-and-inherited-resources/ – tipugin 2012-01-02 21:17:02

回答

1

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

你可以把控制器在單獨的文件夾,並通過不同的途徑訪問它們...

FE。

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