Beim Einrichten des Routings in Rails werde ich zusammenfassen, was ich mit einer Überprüfung gelernt habe.
Beim Routing in Rails wird ein Controller und eine Aktion aus der angeforderten URL ausgewählt.
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
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
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
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 %>
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 %>
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