[RUBY] Ich habe versucht, ① umzugestalten

Ausführung

・ Ruby 2.5.7 ・ Schienen 5.2.4.3

Überarbeiten Sie den Code für Ihr Portfolio

Zunächst ist die aktuelle Situation wie folgt. Furchtbar,,. Es gibt acht Aktionsnamen, die fast dasselbe schreiben. Lassen Sie uns zunächst die Aktionen von Datum1 bis Datum8 umgestalten. スクリーンショット 2020-08-09 14 27 08 スクリーンショット 2020-08-09 14 27 26 スクリーンショット 2020-08-09 14 27 40

Was ist der Prozess, der in jeden Prozess unterteilt werden soll? Was ist der gleiche Prozess? Denken Sie aus der Perspektive von

Wenn der Verarbeitungsinhalt der Aktionen von Datum1 bis Datum8 grob klassifiziert ist, Bei date1 wird ein neuer Datensatz erstellt. Datum2 bis Datum7 sind der Prozess des Erstellens eines neuen Datensatzes + der Prozess des Empfangens der von der vorherigen Seite übergebenen Spalte und des Speicherns des Datensatzes. Datum8 ist der Vorgang des Empfangens der von der vorherigen Seite übergebenen Spalte und des Speicherns des Datensatzes + der Vorgang des Speicherns eines anderen Datensatzes. Also dachte ich, dass Datum2 bis Datum7 zusammengestellt werden könnten.

Wie man den gleichen Prozess zusammenstellt

In diesem Fall war es die Existenz dieser Seitenspalte, die sie verhinderte, selbst wenn ich sie umgestalten wollte. An den Daten 2 bis 7 wurde nur der Wert der Seite geändert, und der Code war derselbe wie das Umleitungsziel, das bei der nachfolgenden Verarbeitung unterschiedlich war. スクリーンショット 2020-08-09 14 53 04

Erhöhen Sie den Wert jedes Mal, wenn sich die Seite ändert

Anstatt den Wert der Seite selbst zu schreiben, dachte ich, ich sollte ihn so codieren, dass der Wert jedes Mal, wenn sich die Seite ändert, um +1 erhöht wird. Erstellen Sie zu diesem Zweck zunächst eine Instanzvariable mit @conto_page = 1 am Datum1. スクリーンショット 2020-08-09 15 12 13 Als nächstes erhalten Sie den Wert auf der Ansichtsseite und übergeben @conto_page mit conto_page an date2: @conto_page mit form_with. スクリーンショット 2020-08-09 15 18 46 Wenn die empfangenen Parameter [: conto_page] .to_i == 8 sind, leiten Sie zum Datum 8 um, andernfalls erhöht sich conto_page um +1. スクリーンショット 2020-08-09 15 15 10

Refactoring abgeschlossen!

Ich konnte die Aktionen von Datum3 bis Datum7 sicher löschen. Wir konnten die Codemenge um ca. 40% reduzieren.

Recommended Posts

Ich habe versucht, ① umzugestalten
Ich habe es mit Spring versucht.
Ich habe versucht, Tomcat zu setzen
Ich habe youtubeDataApi ausprobiert.
Ich habe FizzBuzz ausprobiert.
Ich habe JHipster 5.1 ausprobiert
[Ich habe es versucht] Spring Tutorial
Ich habe versucht, Autoware auszuführen
Ich habe versucht, Gson zu benutzen
Ich habe sofort QUARKUS ausprobiert
Ich habe versucht, TestNG zu verwenden
Ich habe Spring Batch ausprobiert
Ich habe versucht, Galasa zu benutzen
Ich habe versucht, node-jt400 (Programme)
Ich habe versucht, node-jt400 (ausführen)
Ich habe versucht, node-jt400 (Transaktionen)
Ich habe versucht, node-jt400 (Umgebungskonstruktion)
Ich habe DI mit Ruby versucht
Ich habe versucht, node-jt400 (SQL Update)
Ich habe versucht, Azure Cloud-Init zu verwenden
Ich habe Spring State Machine ausprobiert
Ich habe Drools (Java, InputStream) ausprobiert.
Ich habe Rails Anfänger ausprobiert [Kapitel 1]
Ich habe versucht, Apache Wicket zu verwenden
Ich habe versucht, node-jt400 (SQL-Abfrage)
Ich habe versucht, Java REPL zu verwenden
Ich habe versucht, den Quellcode zu analysieren
Ich habe das FizzBuzz-Problem ausprobiert
Ich habe versucht, node-jt400 (SQL-Stream)
Ich habe versucht, node-jt400 (IFS lesen)
Ich habe Rails Anfänger ausprobiert [Kapitel 2]
Ich habe UPSERT mit PostgreSQL ausprobiert.
Ich habe BIND mit Docker ausprobiert
Ich habe versucht, yum-cron zu verifizieren
Ich habe versucht, Metaprogrammierung mit Java
Ich habe jetzt versucht, Anakia + Jing zu verwenden
Ich habe Angular Tutorial + SpringBoot + PostgreSQL ausprobiert
Ich habe versucht, C # (Indexer) zu kauen.
Ich habe etwas versucht, das als rekursive Suche bezeichnet wird
Ich habe versucht, Spring + Mybatis + DbUnit zu verwenden
Ich habe versucht, JOOQ mit Gradle zu verwenden
[K8s] Ich habe versucht, zwischen Pods zu kommunizieren!
Ich habe eine morphologische Analyse mit MeCab versucht
Ich habe ein wenig digdags docker.run_options ausprobiert
Ich habe versucht, die Unterstützung für iOS 14 zusammenzufassen
Ich habe versucht, mit Java zu interagieren
Ich habe versucht, UDP mit Java zu kommunizieren
Ich habe versucht, die Methode zu erklären
Ich habe versucht, Domino11 in CentOS7 zu integrieren
Ich habe das Java-Framework "Quarkus" ausprobiert.
[Rails] Ich habe versucht, die Anwendung zu löschen
Ich habe versucht, die Java8 Stream API zu verwenden
Ich habe Javas Micro-Benchmarking-Tool JMH ausprobiert
Ich habe versucht, JWT in Java zu verwenden
Ich habe GraphQL mit Spring Boot ausprobiert
Ich habe versucht, das Java-Lernen zusammenzufassen (1)