質問編集履歴

2

追加で編集しました

2022/01/03 10:15

投稿

y-kou
y-kou

スコア7

test CHANGED
File without changes
test CHANGED
@@ -92,4 +92,4 @@
92
92
 
93
93
 
94
94
 
95
- 通常のrubyではinitializeなどでインスタンス変数が定義されると思うのですが、上のようにrailstutorialなどのuser.rb(userクラス)ではそれらしい定義がありません。これはマイグレーションファイルでカラムに追加する際同時にインスタンス変数の種類も追加されると解釈してよいのですか?ご回答よろしくお願いいたします。
95
+ 通常のrubyではinitializeなどでインスタンス変数が定義されると思うのですが、上のようにrailstutorialなどのuser.rb(userクラス)ではそれらしい定義がありません(nameやemail,passsord_digestなど)。これはマイグレーションファイルでカラムに追加する際同時にインスタンス変数の種類も追加されると解釈してよいのですか?ご回答よろしくお願いいたします。

1

説明足らずですいません。user.rbのコードを追加しておきました。

2022/01/03 10:15

投稿

y-kou
y-kou

スコア7

test CHANGED
File without changes
test CHANGED
@@ -1 +1,95 @@
1
- 素人質問ですいません。railsではそれぞれのオブジェクトが持つインスタンス変数はどこで定義されるのでしょうか?通常のrubyではinitializeなどで定義されると思うのですがrailstutorialなどのuserクラスではそれらしい定義がありません。これはマイグレーションファイルでカラムに追加する際同時にインスタンス変数も定義されると解釈してよいのですか?ご回答よろしくお願いいたします。
1
+ 素人質問ですいません。railsではそれぞれのオブジェクトが持つインスタンス変数はどこで定義されるのでしょうか?
2
+
3
+
4
+
5
+ app/models/user.rb
6
+
7
+ ```
8
+
9
+ class User < ApplicationRecord
10
+
11
+ attr_accessor :remember_token
12
+
13
+ before_save{self.email = self.email.downcase}
14
+
15
+ validates :name, presence: true, length: {maximum: 50}
16
+
17
+ VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-]+(.[a-z\d\-]+)*.[a-z]+\z/i
18
+
19
+ validates :email, presence: true, length: {maximum: 255},
20
+
21
+ format: {with: VALID_EMAIL_REGEX},
22
+
23
+ uniqueness: { case_sensitive: false}
24
+
25
+ has_secure_password
26
+
27
+ validates :password, presence: true, length: {minimum: 6}
28
+
29
+
30
+
31
+ class << self
32
+
33
+ def new_token
34
+
35
+ SecureRandom.urlsafe_base64
36
+
37
+ end
38
+
39
+
40
+
41
+ def digest(string)
42
+
43
+ cost = ActiveModel::SecurePassword.min_cost ? BCrypt::Engine::MIN_COST :
44
+
45
+ BCrypt::Engine.cost
46
+
47
+ BCrypt::Password.create(string, cost: cost)
48
+
49
+ end
50
+
51
+ end
52
+
53
+
54
+
55
+ def remember
56
+
57
+ self.remember_token = User.new_token
58
+
59
+ update_attribute(:remember_digest, User.digest(remember_token))
60
+
61
+ end
62
+
63
+
64
+
65
+ def authenticated?(remember_token)
66
+
67
+ BCrypt::Password.new(self.remember_digest).is_password?(remember_token)
68
+
69
+ end
70
+
71
+
72
+
73
+ end
74
+
75
+
76
+
77
+ ```
78
+
79
+
80
+
81
+
82
+
83
+ rails c
84
+
85
+ ```
86
+
87
+ irb(main):001:0> User.new
88
+
89
+ => #<User id: nil, name: nil, email: nil, created_at: nil, updated_at: nil, password_digest: nil, remember_digest: nil>
90
+
91
+ ```
92
+
93
+
94
+
95
+ 通常のrubyではinitializeなどでインスタンス変数が定義されると思うのですが、上のようにrailstutorialなどのuser.rb(userクラス)ではそれらしい定義がありません。これはマイグレーションファイルでカラムに追加する際同時にインスタンス変数の種類も追加されると解釈してよいのですか?ご回答よろしくお願いいたします。