Sind mehrere before_action Anrufe schlechten code-Stil?
Arbeite ich an einer app, mit controller, viel before_actions. Die meisten von Ihnen sind mit einander verbunden durch Instanz-Variablen, die Sie festlegen. Zum Beispiel:
def first_action
@first_variable = Something.new
end
def second_action
if @first_variable
@second_variable = Other.new
end
end
Controller sieht wie folgt aus:
class ExampleController < ApplicationController
before_action :first_action, only: [:index, :show, :create]
before_action :second_action, only: [:index, :show, :create]
before_action :third_action, only: [:index, :show, :create]
before_action :fourth_action, only: [:index, :show, :create]
before_action :fifth_action, only: [:index, :show, :create]
before_action :sixth_action, only: [:index, :show, :create]
before_action :seventh_action, only: [:index, :show, :create]
def index
# some code
end
def show
# some code
end
def create
# some code
end
private
# all of the before_action methods
end
Es ist wirklich schwer zu verstehen, aus meiner Sicht. Jede dieser Methode hat viel code. Zusätzlich gibt es Controller, die erbt von diesem ein, und auch der Nutzung eines Teils oder aller dieser Maßnahmen.
Ich habe gehört, dass es besser werden explizit über die geladenen Variablen in jeder Methode ist aber diese:
class ExampleController < ApplicationController
def index
first_action
second_action
third_action
fourth_action
fifth_action
sixth_action
seventh_action
# some code
end
def show
first_action
second_action
third_action
fourth_action
fifth_action
sixth_action
seventh_action
# some code
end
def create
first_action
second_action
third_action
fourth_action
fifth_action
sixth_action
seventh_action
# some code
end
private
# all of the before_action methods
end
nicht viel besser Aussehen. Gibt es eine Möglichkeit, umgestalten, um mehr Lesbarkeit oder sollte ich stick mit der aktuellen Lösung?
- Es ist nichts falsch mit, dass mehrere
before_actions
- aber es sieht mehr aus wie Sie einen Fall haben, wo Sie sein könnten, gesammelt in einer Klage? - Ich ging mit Ihrer Idee @Matt vielen Dank und wenn Sie fügen Sie es als eine Antwort kann ich dies als Lösung für mein problem 🙂
- Getan, froh zu hören, es hat geholfen!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist nichts falsch mit, dass mehrere before_actions - aber es sieht mehr aus wie Sie einen Fall haben, wo Sie sein könnten, gesammelt in einer Klage?
Ihre aktuelle Lösung ist okay. Sie verwenden können, wie zu vermeiden, mehrere Methodenaufrufe