我有一個導軌4的應用,其中所有的控制器和視圖被分成兩個命名空間,backend
的面向劑和一個面向客戶的frontend
:在Rails 4中爲URL Helper設置默認名稱空間?
MyApp::Application.routes.draw do
constraints subdomain: "admin" do
namespace :backend do
resources :events
end
end
constraints subdomain: /.+/ do
namespace :frontend do
resources :events
end
end
end
此外,所有的控制器從任BackendController
或FrontendController
繼承:
controllers
├── application_controller.rb
├── backend
│ ├── events_controller.rb
├── backend_controller.rb
├── frontend
│ └── events_controller.rb
├── frontend_controller.rb
眼下的一切,需要生成的路徑必須與命名空間前綴,如respond_with [:backend, @event]
或form_for [:backend, @event]
。
是否有一種方法可以爲每個控制器的URL助手設置默認名稱空間,以便從繼承自BackendController的控制器調用respond_with @event
會自動採用正確的命名空間?
嚴格地說,默認名稱空間是全局名稱空間,並且沒有選項可以更改它。您可能希望將後端名稱空間移到全局中,或者設置您自己的助手來支持您想要的行爲。儘管如此,抵制違約是件痛苦的事情。 – prusswan