3 Stimmen

Prüfen Sie meine Ruby on Rails routes.rb-Datei

Ich habe gerade vor kurzem begonnen, in Ruby on Rails zu programmieren, und ich habe mich gefragt, ob einige von Ihnen über meine routes.rb-Datei, die ich bisher verwende, schauen könnten und mir sagen, ob ich über dieses Denken bin.

Ich bin mir des gesamten RESTful-Ansatzes in RoR bewusst und versuche, mich daran zu halten, aber ich bin nicht sicher, ob ich auf dem richtigen Weg bin. Bislang hat meine Anwendung nur die folgende Funktionalität:

  • Registrierung der Benutzer
  • Benutzeraktivierung (über E-Mail-Link)
  • Benutzer kann erneute Aktivierung anfordern
  • Benutzer anmelden
  • Benutzer abmelden
  • Benutzer fordert Passwortrücksetzung an (erhält eine E-Mail)
  • Basic UCP (E-Mail und Passwort ändern)

Ich verwende eine Menge redirect_to *_url und *_path, so dass ich eine Menge von benannten Routen. Ich versuche, explizit nur Routen zu deklarieren, die erlaubt sind. Vielen Dank für Ihren Beitrag.

MyApp::Application.routes.draw do
  get 'home' => 'pages#index', :as => 'home'
  get 'testing' => 'pages#testing', :as => 'testing'

  get 'register' => 'users#new', :as => 'register'
  post 'users/create'
  resources :users, :only => [
    :new,
    :create
  ]

  get 'activation' => 'activations#new', :as => 'activation'
  get 'activate/:token' => 'activations#activate', :as => 'activate'
  post 'activations/edit'
  resources :activations, :only => [
    :new,
    :activate,
    :edit
  ]

  get 'login' => 'sessions#new', :as => 'login'
  get 'logout' => 'sessions#destroy', :as => 'logout'
  get 'sessions/destroy'
  resources :sessions, :only => [
    :new,
    :create,
    :destroy
  ]

  get 'forgot_password' => 'resets#new', :as => 'forgot_password'
  post 'resets/create'
  get 'activate_password/:token' => 'resets#activate', :as => 'activate_password'
  put 'save_password' => 'resets#save', :as => 'save_password'
  resources :resets, :only => [
    :new,
    :create,
    :activate,
    :save
  ]

  get 'ucp' => 'ucp#show', :as => 'ucp'
  post 'ucp_update' => 'ucp#update', :as => 'ucp_update'
  resources :ucp, :only => [
    :show,
    :update
  ]

  root :to => 'pages#index'
end

2voto

bricker Punkte 8880

Wenn Sie resources erstellt es automatisch benannte Routen für Sie. Ich werde nicht Ihre gesamte Routendatei durchgehen, aber ein Beispiel:

  get 'activation' => 'activations#new', :as => 'activation'
  get 'activate/:token' => 'activations#activate', :as => 'activate'
  post 'activations/edit'
  resources :activations, :only => [
    :new,
    :activate,
    :edit
  ]

Könnte sein:

resources :activations, :only => [:new, :edit] do
  get 'activate', :on => :member
end

was new_activation_path, edit_activation_path und activate_activation_path erzeugt

Gehen Sie zum Rails-Routing-Leitfaden für eine Menge cooler Sachen, die man in Routen machen kann. Zum Beispiel, wenn Sie "register" statt "new" für Ihre Benutzerpfade verwenden wollen:

 resources :users, :only => [:new, :create], :path_names => [:new => 'register']

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