[RUBY] Die Idee, abzuschalten, wenn der Fehler nicht behoben ist

Hallo, das ist Teppei Mimachi.

Beim Programmieren tritt immer ein Fehler auf. Einige Fehler sind leicht zu beheben, während andere nicht motiviert sind und nicht in Stunden oder sogar Tagen behoben werden können.

Hier ist eine Technik, die Sie möglicherweise für Fehler verwenden können, die Ihnen helfen können, wenn Sie entmutigt sind. Diesmal ist der Fehler in Ruby on Rails aufgetreten. Wenn es sich jedoch um einen datenbankbezogenen Fehler handelt, ist er in jeder Entwicklungsumgebung für Programmiersprachen unabhängig von Rails wirksam.

Dieses Mal dauerte es 3 Tage ab dem Auftreten des Fehlers, um ihn zu beheben, und ich versuchte, ihn kurz und leicht verständlich zusammenzufassen.

Zunächst die Schlussfolgerung

Um diesen Artikel zu skizzieren __ Wenn die Datenbank wie das Original aussieht, ist es schneller, die Datenbank neu zu erstellen. __ __ Die Geschichte.

Dann haben Sie einen dreitägigen Kampf!

Tag 1. Vorlage :: Fehler

スクリーンショット 2020-09-09 13.33.02.png

undefined method `image_name' for nil:NilClass

Als ich den obigen Satz aufgegriffen und den Teil for nil: NilClass ignoriert habe Dies bedeutet, dass die Methode __image_name nicht definiert ist __.

__1. Vergessen, eine Methode zu definieren 2. Einfache Tippfehler __

Ich bezweifelte diesen Bereich und versuchte verschiedene Dinge, Methodendefinition Weder schlecht noch Tippfehler ...

Selbst wenn ich versuche zu googeln, kann ich nicht die richtige Antwort finden ...

Vorerst war ich müde und schlief am ersten Tag ein.

Tag 2. Datenbankähnlich

Ich habe erneut nach Tippfehlern gesucht, aber es gab kein Problem.

Ich habe hier nicht viel Aufmerksamkeit geschenkt

for nil:NilClass

Ich werde versuchen, über den Teil von zu googeln.

Übrigens, wenn Sie Ruby noch nie benutzt haben, Was ist nil? Vielleicht aber

__nil ist gleichbedeutend mit null. __ __ Mit anderen Worten, __ "nichts" __.

Eine Sache, die mir einfällt, ist, dass es nichts gibt ... __ Es scheint mit der Datenbank zu tun zu haben __

Und als ich bemerkte, hatte sich das Datum um 1 Uhr morgens komplett geändert.

Tag 3. Ergebnisse der Fortsetzung von Google

Ruby on Rails 5 --undefinierte Methode `image_name'for nil: NilClass error" teratail

Ich bin an der oben genannten Stelle angekommen. Von hier aus geht das Zitat weiter,

![Screenshot 2020-09-09 16.20.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/688029/9207fcde-3ea3-61aa-649b -0533a6d40940.png)

Dieser Austausch ist alles.

Für diejenigen, die wegen der großen Anzahl von Buchstaben nicht lesen wollen, kann die Schlussfolgerung kurz zusammengefasst werden. __ Ich habe die Ursache grob verstanden, aber es ist besser, die Datenbank neu zu erstellen. __ __ Die Geschichte.

__posts Erstellen Sie eine Tabelle und geben Sie mehrere Daten ein ↓ Programmieren Sie in der Mitte eine Regel, die keine Spalte im Status Null erstellen soll (nichts). ↓ Erstellen Sie eine neue Spalte (user_id) ↓ Alle bisherigen user_id-Spalten befinden sich im Status Null ↓ Ein Fehler ist aufgetreten __

schließlich

Die Ursache enthält Daten, die nicht in der Datenbank gespeichert werden sollen. Dann löschen Sie die Daten. Wenn es auch dann kein Problem gibt, wenn Sie es in der Datenbank der Entwicklungsumgebung löschen, können Sie es wiederherstellen, indem Sie es wie folgt neu erstellen.

Im Fall von Ruby on Rails,

Rails


$ rails db:drop #Löschen Sie die Datenbank
$ rails db:create #Erstellen Sie eine Datenbank
$ rails db:migrate #Zur Datenbank migrieren

Wenn Sie den Quellcode eingeben, der auf diese Weise zu Ihrer Entwicklungsumgebung passt, ist dies eine gute Übersetzung ^^

Recommended Posts

Die Idee, abzuschalten, wenn der Fehler nicht behoben ist
[Schienen] Wenn die Layoutänderung des Geräts nicht berücksichtigt wird
Fehler, wenn das in SpringWebFlux verwendete Mitglied der Entity-Klasse endgültig ist
Der ActiveSupport-Unterstrich ist nicht die inverse Konvertierung von camelize
Die Gerätefehlermeldung wird nicht richtig angezeigt.
Wenn das Projekt nicht in Eclipse angezeigt wird
[Schienen] Was tun, wenn das Refile-Bild beim Schreiben der Verarbeitung zum Zeitpunkt des Routing-Fehlers nicht angezeigt wird?
Die Idee der schnellen Sortierung
Die Idee von jQuery
Wenn der Schwebeflug von Eclipse schwer zu sehen ist
Wenn der Monat des Datums erfasst wird, verschiebt sich der Januar
[Fehler] Die App wird in der Produktionsumgebung nicht angezeigt
"tx" ist kein gebundener Fehler
Wenn ein Fehler auftritt, obwohl die Validierung nicht festgelegt ist
Verwenden Sie keinen Befehl, wenn Sie die CMD des Docker-Images von Pod im Manifest von k8s neu schreiben
[Swift] Ermittelt das Timing, wenn der Wert von textField geändert wird
Logback-Protokoll wird nicht ausgegeben, wenn die Serveranwendung geschlossen wird
Ich möchte den Rahmen des Textfelds rot machen, wenn ein Eingabefehler auftritt
So beheben Sie das Problem, dass beim Stoppen der Webanwendung kein Protokollierungsprotokoll ausgegeben wird
Das Repository ... ist kein signierter Fehler im Docker Build Apt-Get Update
Die Geschichte, dass der Erstellungsfehler bei Verwendung von Eclipse 2020 nicht aufgehört hat
Untersuchungsmethode, wenn die CPU des Servers, auf dem Java ausgeführt wird, schwer ist
'% 02d' Was ist der% von% 2?
[RSpec] Wenn Sie die Instanzvariable des Controllers im Test verwenden möchten [Zuweisungen wird nicht empfohlen]
[Schienen] Über den Fehler, dass das Bild nicht in der Produktionsumgebung angezeigt wird
[Fehler] In Bezug auf rbenv: Ruby 2.5.1 ist nicht installiert, wenn die automatische Bereitstellung ausgeführt wird
So beschränken Sie die Aktion des Übergangsziels, wenn Sie nicht angemeldet sind
Wenn das Formular wie "Auswählen von Materialisieren" nicht ordnungsgemäß funktioniert
Java / Kotlin: Berechnen Sie den Quotienten, indem Sie die Anzahl der gültigen Zahlen angeben, wenn er nicht durch die Division (Division) von BigDecimal teilbar ist.
So beheben Sie den Fehler 'ActionView :: Template :: Error' (Das Asset "application.css" ist in der Asset-Pipeline nicht vorhanden. '"Beim Vorkompilieren von Rails-Assets
[Rails] Annotate wird bei der Migration nicht ausgeführt
Was ist ein Test? ・ Über die Wichtigkeit eines Tests
[Ruby] Schneiden Sie den Inhalt von Twitter-Anzeigen ab
Wie ist die Datenstruktur von ActionText?
Möglichkeit bei der Bereitstellung auf EC2, aber im Fehlerprotokoll wird nichts angezeigt
[Thymeleaf & Spring] Fehler, der dadurch verursacht wurde, dass / am Ende des Meta-Tags nicht gesetzt wurde
[Grails] Beim Ausführen ist ein Fehler aufgetreten. Was ist zu tun, wenn die Grails-CLI nicht gestartet wird?
Upcast (Java), das den Änderungsbetrag reduzieren kann, wenn die Spezifikation geändert wird
[Twitter API] Gegenmaßnahmen, wenn auf der https-Website "Es ist nicht sicher" angezeigt wird
Festlegen, wann in junit "Der Konstruktor Empty () ist nicht sichtbar" auftritt
Ist es Mainstream, das schließende Tag des <P> -Tags nicht in Javadoc zu schreiben?
Ursache ist nicht sichtbar, wenn Methoden anderer Klassen in Java aufgerufen werden
[Java] Tag ab Datum berechnen (Kalenderklasse nicht verwenden)
Beim Ändern des Controllers von Spring Web MVC in kotlin, @Autowired Die angegebene Komponente wird nicht injiziert und wird null
Wenn eine Nachricht mit dem benutzerdefinierten Validator von JSF angezeigt wird, wird die errorClass von h: message nur angewendet, wenn SEVERITY_ERROR in der Nachricht festgelegt ist.