2012-11-28 10 views
7
match '/submit_expense/:id' => 'expenses#submit_expense', :as => 'submit_expense' 

Wie würde ich dies an meinen: admin-Namespace richten? Muss ich die Übereinstimmung in der Namespace-Deklaration definieren?Rails - Route zum Namespace-Controller

+2

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

+1

Ich habe das gelesen, was ich zu ermitteln versuche, ist die richtige Methode, um eine benutzerdefinierte Methode mit einem Namespace abzugleichen, ich habe die Match-Anweisung in meine Namespace-Deklaration verschoben, und es funktioniert . Aber ist das der richtige Weg? – Atari2600

+2

Oh! Nun ja, ich denke, Sie müssten Ihre Übereinstimmungserklärung in den Namespace setzen. – MrYoshiji

Antwort

10

in routes.rb könnte dies ... arbeiten

namespace :admin do 
    match '/submit_expense/:id' => 'expenses#submit_expense', :as => 'submit_expense' 
end 
+3

Ich bin mir ziemlich sicher, dass dies den Pfad generieren würde:/admin/submit_expense statt nur einfach alt/submit_expense –

+0

@ ChrisO'Sullivan, du hast Recht, tut es. Ich suche nach einer Möglichkeit, auf einen Namespace-Controller zu zeigen, aber den Pfad nicht zu beeinflussen. – cdpalmer

+0

Wenn Sie sich auf einen Namen-Controller beziehen möchten, können Sie 'module: 'admin' verwenden. Erfahren Sie mehr hier http://guides.rubyonrails.org/routing.html –

18

Sie verwenden können/wie wenn Sie den Controller-Generator:

match '/submit_expense/:id' => 'admin/expenses#submit_expense', :as => 'submit_expense'