ʻAttr_accessor` qui est sorti avant Je n'ai pas beaucoup compris, alors j'ai cherché
--Rôle de ʻattr_accessor`
J'ai lu deux lignes et j'ai voulu abandonner le reste
L'attribut Remember_digest a déjà été ajouté au modèle User, mais l'attribut Remember_token n'a pas encore été ajouté. Par conséquent, il est nécessaire de rendre le jeton accessible à l'aide de la méthode user.remember_token et d'implémenter le jeton sans le stocker dans la base de données. Par conséquent, nous allons résoudre ce problème par la même méthode que l'implémentation du mot de passe effectuée en 6.3. À ce moment-là, j'ai utilisé l'attribut de mot de passe virtuel et l'attribut secure password_digest sur la base de données. L'attribut de mot de passe virtuel a été créé automatiquement avec la méthode has_secure_password, mais cette fois, vous devez écrire vous-même le code Remember_token. Pour implémenter cela, créez un attribut "virtuel" en utilisant l'attr_accessor mentionné dans 4.4.5. (Tutoriel Rails 6e édition)
L'attribut Remember_digest a déjà été ajouté au modèle User, mais l'attribut Remember_token n'a pas encore été ajouté.
Attributs existants dans le modèle utilisateur
User.attribute_names
=> ["id", "name", "email", "created_at", "updated_at", "password_digest", "remember_digest"]
Il n'y a pas d'attribut Remember_token
Utilisé pour définir des attributs lisibles et inscriptibles
En définissant ʻattr_accessor: Remember_token Définissez l'attribut Remember_token pour un objet de la classe User ʻUser.remember_token
et attributs de référence
ʻUser.remember_token = attribution d'attributs comme "jeton"
Pourront
J'ai fait référence à ce qui suit Qu'est-ce que l'attr_accessor de Ruby? [Traduction japonaise]
ou ʻattr_accessor: email
J'ai utilisé ʻuser.name, ʻuser.email
jusqu'à présent
Je n'avais jamais été au courant de ʻattr_accessor`
À propos de ça A ceux qui sont entrés depuis Rails [attr_accessor]?
Dans le processus de `` rails générer un modèle ... `et de migration Les rails semblaient faire la même chose sans permission
Par conséquent, il est nécessaire de rendre le token accessible à l'aide de la méthode user.remember_token et d'implémenter le token sans le stocker dans la base de données. ... Pour implémenter cela, créez un attribut "virtuel" en utilisant l'attr_accessor mentionné dans 4.4.5.
Remember_token n'est pas enregistré dans DB En d'autres termes, sans utiliser «les rails génèrent un modèle ...» ou la migration Je comprends que j'utilise ʻattr_accessor` parce que je veux ajouter un nouvel attribut
Au fait ʻAttr_accessor: Remember_token` est défini
User.attribute_names
=> ["id", "name", "email", "created_at", "updated_at", "password_digest", "remember_digest"]
Et "Remember_token" ne sont pas inclus comme attributs de l'objet
user.remember_token = "token"
=> "token"
>> user.remember_token
=> "token"
Peut être traité comme un attribut d'objet Est-ce là l'attribut "" virtuel ""?
Recommended Posts