[RUBY] [Past POST] Ich werde einen Teil des Antwortprotokolls veröffentlichen, als ich Mentor von TECH :: CAMP war

Vergangene POST

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 ...

F. Ich kann den Inhalt des Hashs nicht abrufen

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.

Entsprechender Code


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)

Kommentar

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.

Problemumgehung

Ü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.

Ursache

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.

In Q.heroku wird id in Schritten von 10 angegeben.

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

[Past POST] Ich werde einen Teil des Antwortprotokolls veröffentlichen, als ich Mentor von TECH :: CAMP war
Ein Memo, wenn Sie den Zeitteil des Kalenders löschen möchten
Ich habe ein Juwel gemacht, um den Text des Org-Modus in Qiita zu posten
Ein Memo, das nüchtern von der Anfrage nach mehrteiligen / Formulardaten abhängig war
Eine Geschichte, der ich beim Testen der API mit MockMVC verfallen war
[Circle CI] Ich war süchtig nach dem automatischen Test von Circle CI (Rails + MySQL) [Memo]
Beim Formatieren mit SimpleDateFormat blieb ich beim Umgang mit Zeitzonen
Was ich versucht habe, als ich alle Felder einer Bohne bekommen wollte
Ich habe es geschafft, ein Leerzeichen zu bekommen, als ich den Inhalt von Beans in den Textbereich gebracht habe