[RUBY] Ich habe den Spaltennamen geändert, aber vor der Änderung wurde mir die undefinierte Methode für die Spalte mitgeteilt.

Ausführung

・ Ruby 2.5.7 ・ Schienen 5.2.4.3

Es wurde versucht, einen neuen Datensatz mit einem anderen Spaltennamen, aber einem Fehler zu speichern

Es heißt undefinierte Methode script_id. スクリーンショット 2020-08-13 17 11 14

Wenn ich mir jedoch schema.rb ansehe (vor der Änderung: script_id → nach der Änderung: Joke_book_id), hat sich dies geändert.

schema.rb


t.integer "joke_book_id"
t.integer "user_id"
t.text "introduction"

Woher kommt diese script_id?

Fazit: Ich habe das Modell nicht geändert

Nachdem ich verschiedene Dinge untersucht habe, stelle ich fest, dass das Modell verdächtig ist. Mit Blick auf das Modell, Es war das gleiche wie vor der Änderung mit validates: script_id, {present: true}. Wechseln Sie hier in eine neue Spalte. validates :joke_book_id, {presence: true}

users_joke.rb


#validates :script_id, {presence: true} #Vorher ändern

validates :joke_book_id, {presence: true} #Nach der veränderung

Es funktionierte! !! !!

Recommended Posts

Ich habe den Spaltennamen geändert, aber vor der Änderung wurde mir die undefinierte Methode für die Spalte mitgeteilt.
[Ruby on Rails] So ändern Sie den Spaltennamen
[Rails] So ändern Sie den Spaltennamen der Tabelle
Ich habe [Klonmethode für Java-Arrays] als Klonmethode in Java-Arrays übersetzt.
So ändern Sie dynamisch den von MyBatis erfassten Spaltennamen
[Rails] Ich habe zum ersten Mal versucht, die button_to-Methode zu verwenden
[Android] Ändern Sie den App-Namen und das App-Symbol für jeden Geschmack