[RUBY] Ich habe die gleiche Beschreibung wie eine Methode unter privat im Rails-Controller getrennt und implementiert, damit sie mit before_action aufgerufen werden kann

Dieser Artikel verwendet die installierten Rails 6.0.0.

Dinge die zu tun sind

Stellen Sie mehrere Beschreibungen zusammen Machen Sie den Controller besser sichtbar Verwenden Sie eine private Methode benutze before_action

Anfangscode

items_controller.rb


def show 
   @item = Item.find(params[:id])
end

def edit
   @item = Item.find(params[:id])
end

def update
   @item = Item.find(params[:id])
end 
[Wie Sie sehen können, werden ähnliche Beschreibungen in mehreren Aktionen verwendet. Ich möchte dies trennen und es nennen! ]]

Methode 1 ~ Ich werde es in private und unten ~ teilen

items_controller.rb


private
 def set_item
    @item = Item.find(params[:id])
  end

Löschen Sie zunächst die Beschreibung von @ (Instanzvariable) im Anfangscode. Und unten privat machen. Erstellen Sie eine Methode set_item und fügen Sie die zuvor gelöschte Beschreibung ein. (Jeder Methodenname ist in Ordnung, solange er leicht zu verstehen ist.) Auf diese Weise können Sie es als Methode trennen. Dies allein kann jedoch nicht einfach durch Ausschneiden aufgerufen werden.

Methode 2 ~ Ich werde es mit before_action ~ aufrufen

items_controller.rb


before_action :set_item, only: [:show, :edit, :update]

Schreiben Sie dies oben auf den Controller. Nacheinander erklären before_action: Beschreibung, die aufgerufen werden soll, bevor jede Aktion ausgeführt wird set_item: Mesot-Name, der privat von Methode 1 erstellt wurde only: Die Bedeutung des Kanji, dass es nur für bestimmte Aktionen verwendet wird. Das entgegengesetzte Wort ist erwarten, was bedeutet, es für etwas anderes als eine bestimmte Aktion zu verwenden! Beschreiben Sie anschließend den anzugebenden Aktionsnamen!

Schließlich

Ist es sinnvoll, den ursprünglichen Code verständlicher zu machen? Sie können zuerst denken. Ich war das gleiche Lol Dies ist jedoch sehr praktisch, da Sie den Aktionsnamen nur zu before_action hinzufügen müssen, beispielsweise wenn Sie danach dieselbe Beschreibung für eine andere Aktion benötigen! Sie können den Code so schreiben, dass er für andere leicht zu sehen ist und keine lange Beschreibung! Ich werde mir weiterhin bewusst sein, Code anzuwenden, der für andere leichter zu sehen ist!

Recommended Posts

Ich habe die gleiche Beschreibung wie eine Methode unter privat im Rails-Controller getrennt und implementiert, damit sie mit before_action aufgerufen werden kann
Ich habe versucht, die Funktion zum Hochladen mehrerer Bilder in Rails zu implementieren, damit mehrere Bilder für den Beitrag verschoben werden können
Ich habe ein Rätsel ausprobiert, das nur von den unteren 10% der schlechten Ingenieure gelöst werden kann
Ein aktiver Hash, der als Daten behandelt werden kann, auch wenn er nicht in der Datenbank enthalten ist
So testen Sie eine private Methode und verspotten sie teilweise in Java
[Rails] "Pry-Rails", die beim Speichern mit der create-Methode verwendet werden können
Fortsetzung ・ Aktiver Hash, der als Daten behandelt werden kann, auch wenn er nicht in der Datenbank enthalten ist ~ Anzeige