Ich habe eine Rails 4 app, wo alle Controller und Ansichten in zwei Namensräume unterteilt sind, ein Agent gerichteten backend
und eine kundenorientierte frontend
:Einen Standard-Namespace für URL-Helfer in Rails 4 festlegen?
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
, zusätzlich alle Controller von erben entweder BackendController
oder FrontendController
:
controllers
├── application_controller.rb
├── backend
│ ├── events_controller.rb
├── backend_controller.rb
├── frontend
│ └── events_controller.rb
├── frontend_controller.rb
Gerade jetzt alles, was einen Pfad zu erzeugen, braucht hat mit dem Namespace, wie respond_with [:backend, @event]
oder form_for [:backend, @event]
vorangestellt werden.
Gibt es eine Möglichkeit, einen Standard-Namespace für URL-Helfer pro Controller festzulegen, so dass respond_with @event
von einem Controller, der von BackendController erbt, automatisch den richtigen Namespace übernimmt?
Genau genommen ist der Standard-Namespace der globale Namespace und es gibt keine Option, ihn zu ändern. Sie könnten den Backend-Namespace in global verschieben oder eigene Helfer einrichten, um das gewünschte Verhalten zu unterstützen. Es ist jedoch schmerzhaft, die Standardeinstellungen zu bekämpfen. – prusswan