[RUBY] [POST passé] Je publierai une partie du mémo réponse quand j'étais mentor de TECH :: CAMP

POST passé

Je publierai ce que j'ai écrit lorsque j'étais mentor pour TECH :: CAMP dans le passé. J'ai essayé de le diviser en petits morceaux, mais je vais résumer les petits. Ma mémoire est ambiguë, il peut donc y avoir des erreurs ...

Q. Je ne peux pas récupérer le contenu du hachage

movie = {"title" => "Harry Potter", "genre" => "Fantaisie", "année" => "2001"} Écrivez le code qui prend la chaîne que vous souhaitez obtenir. Je pense que c'était un problème comme celui-ci.

Code correspondant


def movie_info(movie, data)
  puts movie[data]
end

movie = {"title" => "Harry Potter", "genre" => "Fantaisie", "year" => "2001"}

puts "Veuillez en sélectionner un parmi les suivants et le saisir.
· Titre
· Genre
· Année"

info = gets.chomp

movie_info(movie, info)

Commentaire

ici puts movie[:data] Si vous le faites, cela ne fonctionnera pas. La raison en est que le type est différent.

info = gets.chomp Puisque nous recevons la clé sous forme de "chaîne de caractères" ici La définition de hachage utilise également la chaîne "title", il n'y a donc pas de problème ici.

puts movie[:data] D'un autre côté, si vous écrivez comme ceci, il sera affiché sous forme de type de symbole. Rien n'est produit car le type est différent.

En passant, vous pouvez utiliser .class pour vérifier le type. ex) info.class

Si vous souhaitez utiliser le type de symbole movie = {title: =>" Harry Potter "} Changer la définition de hash comme info = gets.chomp.to_sym Si vous le réécrivez comme ceci, cela fonctionnera.

puts movie[data.to_sym] Mais c'est d'accord. (Converti en type de symbole)

Q.devise, no method error Lorsqu'une erreur sans méthode se produit, liée à l'appareil. Par exemple, il n'y a pas de current_sign_in_at.

solution de contournement

Vérifiez le fichier de migration correspondant créé par devise Supprimer le commentaire autour de la partie concernée Recréez la base de données $ rake db:migrate:reset Vous pouvez tout faire en même temps avec cette commande.

Cette commande supprime la base de données une fois, Il s'agit d'une commande permettant de recréer la base de données sur la base du fichier de migration existant. Bien entendu, les données stockées dans la base de données seront supprimées. Si vous avez diverses données et que vous souhaitez les conserver, je pense que vous devez les exporter au format CSV et les enregistrer quelque part.

Si vous avez migré juste avant, vous pouvez revenir en arrière.

$ rake db:migrate:status

Vous pouvez vérifier avec quels fichiers sont actuellement migrés.

Cause

Lorsque j'ai installé l'appareil, j'ai laissé les éléments commentés par défaut. La méthode que vous souhaitez utiliser n'a pas été générée. Il devrait être résolu en refaisant à nouveau la migration.

Sur Q.heroku, l'identifiant est donné par incréments de 10.

Il n'y a pas de problème dans l'environnement de développement, mais cela ne change que dans l'environnement de production. Je ne pense pas que beaucoup de gens s'en soucient, mais c'est le paramètre par défaut de clearDB. heroku semble utiliser cleardb comme serveur de base de données.

【référence】 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

[POST passé] Je publierai une partie du mémo réponse quand j'étais mentor de TECH :: CAMP
Un mémo lorsque vous souhaitez effacer la partie horaire de l'agenda
J'ai fait un petit bijou pour poster le texte du mode org sur qiita
Un mémo sobrement accro à la demande de multipart / form-data
Une histoire à laquelle j'étais accro lors du test de l'API à l'aide de MockMVC
[Circle CI] J'étais accro au test automatique de Circle CI (rails + mysql) [Memo]
J'étais coincé avec la gestion des fuseaux horaires lors du formatage avec SimpleDateFormat
Ce que j'ai essayé quand je voulais obtenir tous les champs d'un haricot
J'ai réussi à obtenir un blanc lorsque j'ai apporté le contenu de Beans dans la zone de texte