habe ich dieses Stück Code, der Leitungslänge Grenze überschreiten Rubocop Straftat erhöhen:Wie eine lange Schlange in Ruby Refactoring
return organisation_path(current_user.organisation) if current_user.organisation
return session[:previous_url] if session[:previous_url]
return organisation_path(current_user.pending_organisation_id) if current_user.pending_organisation_id
root_path
Ende
Die Grenze in vorletzter Linie überschreitet. Ich versuche, diese Linie umzuformulieren, um die Rubocop-Offensive zu lösen.
Mein erster Versuch war es wie folgt aufgeteilt:
return organisation_path(current_user.pending_organisation_id) if
current_user.pending_organisation_id
Aber es ist nicht lesbar aussehen.
Mein zweiter Versuch war diese Linie ein Verfahren zur ausklammern, so habe ich diese Methode:
def pending_organization_path_for_current_user
return organisation_path(current_user.pending_organisation_id) if current_user.pending_organisation_id
end
Aber auch hier der Methodenname zu lang ist und damit die Linie
pending_organization_path_for_current_user if current_user.pending_organisation_id
das übersteigt Leitungslänge und damit ist die Lösung für mich nicht machbar.
Also meine Frage als Anfänger ist, wie sollte ich Refactor solche Fälle betrachten?
Was einfach bre die if-Anweisung in mehrere Zeilen umwandeln? – Severin
Rubocop wird dann Guard-Klausel Offensive erzeugen. – Lokesh