[RUBY] Wie schreibe ich Rails Routing

Überblick

Beim Einrichten des Routings in Rails werde ich zusammenfassen, was ich mit einer Überprüfung gelernt habe.

Was ist Routing?

Beim Routing in Rails wird ein Controller und eine Aktion aus der angeforderten URL ausgewählt.

So richten Sie das Routing ein

Beschreiben Sie die Einstellungen in der Datei config / route.rb. Der Inhalt sind die Routing-Einstellungen.

config/routes.rb


Rails.application.routes.draw do
  #Beschreiben Sie hier das Routing
end

Wie schreibe ich Routing

Die Grundlagen werden unter "Methode" Pfad "=>" Controller #Action "" beschrieben.

config/routes.rb


Rails.application.routes.draw do
  #Beispiel
  get "about" => "top#about"
  post "login" => "sessions#login
end

Kann weggelassen werden, wenn die Aktion "Controller #" mit dem Pfad identisch ist

config/routes.rb


Rails.application.routes.draw do
  #Beispiel
  get "info/room"
end

Sie können das Routing mit der Option as benennen. Wenn Sie als Methode "angegebener Name_Pfad" aufrufen, wird eine Zeichenfolge mit "/ angegebener Name" zurückgegeben.

config/routes.rb


Rails.application.routes.draw do
  #Beispiel
  get "help" => "document#help", as: "help"
end

Wenn Sie ": parameter" schreiben, können Sie den Parameter als Pfad verwenden.

config/routes.rb


Rails.application.routes.draw do
  #Beispiel
  get "posts/:year/:month" => "posts#show
end

So schreiben Sie ressourcenbasiertes Routing

Um das ressourcenbasierte Routing zu konfigurieren, schreiben Sie die Ressourcenmethode und machen Sie den Ressourcennamen plural. Um das Routing für eine einzelne Ressource festzulegen, beschreiben Sie die Ressourcenmethode und machen Sie den Ressourcennamen zu einem einzelnen Formular. Die Rails-Ressourcenbasis ist ein REST-basierter Name für das, was der Controller verarbeitet.

config/routes.rb


Rails.application.routes.draw do
  #Beispiel
  resources :users
  # get "users" => "users#index"
  # get "users/:id" => "users#show"
  # get "users/new" => "users#new"
  # get "users/:id/edit" => "users#edit"
  # post "users" => "users#create"
  # patch "users/:id" => "users#update"
  # delete "users/:id" => "users#destroy"
  resource :account
  # get "account" => "account#show"
  # get "account/new" => "account#new"
  # get "account/edit" => "account#edit"
  # post "account" => "account#create"
  # patch "account" => "account#update"
  # delete "account" => "account#destroy"
end

Wenn Sie dem von der Ressourcenmethode erstellten Routing eine zusätzliche Aktion hinzufügen möchten, schließen Sie diese in einen Block ein und beschreiben Sie die neue Methode und Aktion darin. Setzen Sie "on :: collection", wenn die zusätzliche Aktion eine Menge darstellt, oder "on :: member", wenn Sie das id-Attribut hinzufügen möchten.

config/routes.rb


Rails.application.routes.draw do
  #Beispiel
  resources :users do
    get "search", on: :collection
    patch "suspend", "restore", on: :member
  end
end

Übergeben Sie von den von der Ressourcenmethode erstellten Aktionen die einzige Option oder Ausnahmeaktion für unnötige Aktionen und legen Sie die Aktion fest.

config/routes.rb


Rails.application.routes.draw do
  #Beispiel
  resources :users, only: [:index, :show]
  resources :users, except: [:show]
end

Pfad angeben

Der durch das Routing festgelegte Pfad kann durch die Methode link_to oder die Methode redirect_to angegeben werden. Beispiel: Benutzer mit Ressourcennamen

Aktion URL Pfad
index users users_path
show users/:id user_path(user)
new users/new new_user_path
edit users/:id/edit edit_user_path(user)
create users users_path
update users/:id user_path(user)
destroy users/:id user_path(user)

:~view.html.erb


<%= link_to "Aufführen", users_path %>

Sie können den Parameter id abrufen, indem Sie ein Modellobjekt als Argument übergeben. Sie können auch die Methodenoption verwenden, um zwischen HTTP-Methoden zu unterscheiden.

:~view.html.erb


<%= link_to "Löschen", user_path(@user), method: :delete %>

Pfadvereinfachung

Sie können auch einen vereinfachten Pfad angeben. Wenn Sie ein Modellobjekt als zweites Argument übergeben, können Sie es in denselben Pfad wie den mit dem Parameter id ändern.

:~view.html.erb


<%= link_to "Löschen", users_path(@user), method: :delete %>
     ↓
<%= link_to "Löschen", @user, method: :delete %>

Aktionen, die einzelne Ressourcen verarbeiten, können in [: Aktionsname, Modellobjekt] festgelegt werden.

:~view.html.erb


<%= link_to "Bearbeiten", edit_user_path(@user) %>
     ↓
<%= link_to "Bearbeiten", [edit, @user] %>

Aktionen, die Ressourcen verarbeiten, für die keine ID erforderlich ist, können festgelegt werden, indem "_path" weggelassen und ein Symbol verwendet wird.

:~view.html.erb


<%= link_to "Aufführen", users_path %>
     ↓
<%= link_to "Aufführen", :users %>

Zusammenfassung

Ich habe ein neues Verständnis für Routing und Pfade gewonnen. Da ich häufig Programme in einem vereinfachten Zustand für Routing und Pfade schreibe, vergesse ich häufig die ursprüngliche Form. Daher bin ich froh, dass ich jetzt lernen konnte, wie man sie wiederherstellt. Ich denke, dass es eine Möglichkeit gibt, das Routing festzulegen, wenn ich es im Detail untersuche. Daher möchte ich es nach Bedarf hinzufügen.

Recommended Posts

Wie schreibe ich Rails Routing
[Refactoring] So schreiben Sie Routing
Wie schreibe ich Rails Seed
[Rails] Wie schreibe ich eine Ausnahmebehandlung?
So deinstallieren Sie Rails
Wie schreibe ich Docker-Compose
Wie schreibe ich Mockito
[Rails] So konfigurieren Sie das Routing in Ressourcen
So schreiben Sie eine Migrationsdatei
Schienen: Wie man eine Rechenaufgabe schön schreibt
[Rails] Wie schreibe ich, wenn ich eine Unterabfrage mache?
[Schienen] Wie poste ich Bilder?
Wie man guten Code schreibt
[Rails] Verwendung von Enum
[Rails] Verwendung von Enum
Wie schreibe ich einen Java-Kommentar
Wie man Schienenrouten liest
Verwendung von Rails Join
Wie schreibe ich Junit 5 organisiert
So beenden Sie den Rails-Server
[Rails] Verwendung der Validierung
[Schienen] So deaktivieren Sie Turbolinks
[Rails] So verwenden Sie authenticate_user!
[Rails] So implementieren Sie Scraping
[Schienen] Wie man Samen macht
[Rails] So installieren Sie simple_calendar
[Rails] So installieren Sie reCAPTCHA
[Schienen] Verwendung von Scope
[Ruby on Rails] Wie schreibe ich eine Enumeration auf Japanisch?
So schreiben Sie eine Datumsvergleichssuche in Rails
[Rails] Wie man Edelstein "devise" benutzt
[Schienen] Verwendung von Geräten (Hinweis)
[Rails] Zwei Möglichkeiten, form_with zu schreiben
[Rails] Verwendung von Flash-Nachrichten
[Rails] Anzeigen von Datenbankinformationen
Java # 6 studieren (Wie man Blöcke schreibt)
Verwendung von Ruby on Rails
So stellen Sie Bootstrap auf Rails bereit
[Rails] So beschleunigen Sie das Docker-Compose
[Schienen] So fügen Sie neue Seiten hinzu
[Rails] So installieren Sie ImageMagick (RMajick)
So schreiben Sie eine Java-Variablendeklaration
[Rails] So installieren Sie Font Awesome
[Rails] Verwendung von Active Storage
So installieren Sie jQuery in Rails 6