4 Stimmen

Ruby on Rails - ID-Parameter zu allen Routen hinzufügen

Ich frage mich, wie die beste Möglichkeit ist, die folgende Funktionalität im Rails-Routing umzusetzen:

Szenario: Eine Website, auf der sich Benutzer für Konten anmelden => accountID (Konto) wird die Hauptentität innerhalb der Website.

Beispiel: https://basecamp.com/:ID/ - führt autorisierte Benutzer zum Basecamp-Dashboard. Von hier aus enthalten alle URLs die :accountID wie in https://basecamp.com/:ID/projects - listet alle Projekte unter dem Konto auf.

Vielen Dank im Voraus!

7voto

Carsten Gehling Punkte 1178

Verwenden Sie Prefix-Routen:

scope ":account_id" do
  resources :projects
  ...
end

Dies wird Ihnen immer params[:account_id] auf jedem Ressourcencontroller geben, der innerhalb des Scopes definiert ist.

Erfahren Sie mehr hier: http://guides.rubyonrails.org/routing.html#prefixing-the-named-route-helpers

Aktualisierung: Hier ist ein vollständiges Beispiel, einschließlich Ihres "Dashboard"-Standardrouten

scope ":account_id" do
  root :to => "dashboard#index"  # http://example.com/12323/
  resources :projects            # http://example.com/12323/projects
  resources :todos               # http://example.com/12323/todos
  ...
end

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X