Ich werde veröffentlichen, was ich als Mentor für TECH :: CAMP in der Vergangenheit niedergeschrieben habe. Ich habe versucht, es in kleine Stücke zu teilen, aber ich werde die kleinen zusammenfassen. Mein Gedächtnis ist nicht eindeutig, daher kann es zu Fehlern kommen ...
movie = {"title" => "Harry Potter", "genre" => "Fantasy", "year" => "2001"} Schreiben Sie den Code, der die Zeichenfolge enthält, von der Sie abrufen möchten. Ich denke, das war so ein Problem.
def movie_info(movie, data)
puts movie[data]
end
movie = {"title" => "Harry Potter", "genre" => "Fantasie", "year" => "2001"}
puts "Bitte wählen Sie eine der folgenden Optionen aus und geben Sie sie ein.
· Titel
・ Genre
・ Jahr"
info = gets.chomp
movie_info(movie, info)
Hier
puts movie[:data]
Wenn Sie dies tun, wird es nicht funktionieren.
Der Grund ist, dass der Typ unterschiedlich ist.
info = gets.chomp
puts movie[:data]
ex) info.class
Die Hash-Definition verwendet auch die Zeichenfolge "title", daher gibt es hier kein Problem. Wenn Sie es dagegen so schreiben, wird es als Symboltyp ausgegeben, und es wird nichts ausgegeben, da der Typ unterschiedlich ist. Übrigens können Sie mit .class den Typ überprüfen. Wenn Sie das Symbol verwenden möchten, geben Sie movie = {title: =>" Harry Potter "}
ein
Ändern Sie die Definition von Hash wie
info = gets.chomp.to_sym
Wenn Sie es so umschreiben, wird es funktionieren.
puts movie[data.to_sym]
Aber es ist okay. (In Symboltyp konvertiert)
Q.devise, no method error Wenn ein Fehler ohne Methode im Zusammenhang mit dem Gerät auftritt. Zum Beispiel gibt es kein aktuelles_Zeichen_in_at.
Überprüfen Sie die entsprechende Migrationsdatei, die von devise erstellt wurde
Entfernen Sie den Kommentar um den relevanten Teil
Erstellen Sie die Datenbank neu
$ rake db:migrate:reset
Mit diesem Befehl können Sie alles auf einmal erledigen.
Dieser Befehl löscht die Datenbank einmal. Es ist ein Befehl zum Neuerstellen der Datenbank basierend auf der vorhandenen Migrationsdatei. Natürlich werden die in der Datenbank gespeicherten Daten gelöscht. Wenn Sie verschiedene Daten haben und diese behalten möchten, sollten Sie die Daten in CSV ausgeben und irgendwo speichern.
Wenn Sie kurz zuvor migriert haben, können Sie ein Rollback durchführen.
$ rake db:migrate:status
Sie können überprüfen, mit welchen Dateien aktuell migriert wird.
db: reset
zu machen. Erstellen Sie es einfach aus der Schemadatei neu.Bei der Installation des Geräts habe ich die Elemente standardmäßig auskommentiert. Die Methode, die Sie verwenden möchten, wurde nicht generiert. Es sollte gelöst werden, indem die Migration erneut wiederholt wird.
Es gibt kein Problem in der Entwicklungsumgebung, aber es ändert sich nur in der Produktionsumgebung. Ich denke nicht, dass es viele Leute interessiert, aber dies ist die Standardeinstellung für clearDB. heroku scheint cleardb als db server zu verwenden.
【Referenz】 http://w2.cleardb.net/faqs/#general_16 When I use auto_increment keys (or sequences) in my database, they increment by 10 with varying offsets. Why? ClearDB uses circular replication to provide master-master MySQL support. As such, certain things such as auto_increment keys (or sequences) must be configured in order for one master not to use the same key as the other, in all cases. We do this by configuring MySQL to skip certain keys, and by enforcing MySQL to use a specific offset for each key used. The reason why we use a value of 10 instead of 2 is for future development.
Recommended Posts