[RUBY] Warum Sie attr_accessor benötigen und warum nicht (dank Rails): Rails Tutorial Memorandum - Kapitel 9

Der "attr_accessor", der zuvor herauskam Ich habe nicht viel verstanden, also habe ich nachgeschlagen

Was ich verstanden habe

Dies ist derjenige, der gestolpert ist

Ich las zwei Zeilen und wollte den Rest aufgeben

Das Attribut Remember_Digest wurde bereits zum Benutzermodell hinzugefügt, das Attribut Remember_token wurde jedoch noch nicht hinzugefügt. Daher ist es erforderlich, das Token mit der Methode user.remember_token zugänglich zu machen und das Token zu implementieren, ohne es in der Datenbank zu speichern. Daher werden wir dies mit der gleichen Methode lösen wie die in 6.3 durchgeführte Passwortimplementierung. Zu diesem Zeitpunkt habe ich das virtuelle Kennwortattribut und das sichere Kennwort_digest-Attribut in der Datenbank verwendet. Das virtuelle Kennwortattribut wurde automatisch mit der Methode has_secure_password erstellt. Diesmal müssen Sie den Code Remember_token jedoch selbst schreiben. Um dies zu implementieren, erstellen Sie ein "virtuelles" Attribut mit dem in 4.4.5 genannten attr_accessor. (Rails Tutorial 6. Ausgabe)

Verstehe nach und nach

Das Attribut Remember_Digest wurde bereits zum Benutzermodell hinzugefügt, das Attribut Remember_token wurde jedoch noch nicht hinzugefügt.

Vorhandene Attribute im Benutzermodell

User.attribute_names
=> ["id", "name", "email", "created_at", "updated_at", "password_digest", "remember_digest"]

Es gibt kein Remember_token-Attribut

Was ist "attr_accessor"?

Wird verwendet, um lesbare und beschreibbare Attribute zu definieren

Durch Setzen von attr_accessor: Remember_token Definieren Sie das Attribut memor_token für ein Objekt der Benutzerklasse Sie können auf "user.remember_token" und Attribute verweisen `user.remember_token =" Token "und das Attribut Wird in der Lage sein

Ich bezog mich auf Folgendes Was ist Rubys attr_accessor? [Japanische Übersetzung]

Ich habe noch nie "attr_accessor: name" oder "attr_accessor: email" gemacht

Ich habe bisher "user.name" und "user.email" verwendet "Attr_accessor" war mir nie bekannt

Darüber Zu denen, die von Rails [attr_accessor] eingegeben haben?

Im Prozess der "Schienen generieren Modell ..." und Migration Rails schien dasselbe ohne Erlaubnis zu tun

Der wichtige Punkt war "Nicht in Datenbank speichern".

Daher ist es erforderlich, das Token mit der Methode user.remember_token zugänglich zu machen und das Token zu implementieren, ohne es in der Datenbank zu speichern. ... Um dies zu implementieren, erstellen Sie ein "virtuelles" Attribut mit dem in 4.4.5 genannten attr_accessor.

Remember_Token wird nicht in der Datenbank gespeichert Mit anderen Worten, ohne Verwendung von "Schienen erzeugen Modell ..." oder Migration Ich verstehe, dass ich "attr_accessor" verwende, weil ich ein neues Attribut hinzufügen möchte

Apropos Auch wenn "attr_accessor: Remember_token" definiert ist

User.attribute_names
=> ["id", "name", "email", "created_at", "updated_at", "password_digest", "remember_digest"]

Und "Remember_Token" sind nicht als Attribute des Objekts enthalten

user.remember_token = "token"
=> "token"
>> user.remember_token
=> "token"

Kann wie ein Objektattribut behandelt werden Ist das das "" virtuelle "Attribut"?

Recommended Posts

Warum Sie attr_accessor benötigen und warum nicht (dank Rails): Rails Tutorial Memorandum - Kapitel 9
Rails Tutorial Records und Memorandum # 0
Dinge, an die Sie sich erinnern sollten, und Konzepte im Ruby on Rails-Tutorial
Warum brauchen Sie Bundle Exec
Bis zur Einführung von Schriftarten in Rails
Für Sie, die unbedingt eine Rückverfolgung benötigen
Rails Tutorial-Datensatz und Memorandum Nr. 1 "Von der Installation bis zur Bereitstellung von hello_app + Fehlerbehandlung"