質問編集履歴

1

情報の追加

2016/09/17 02:30

投稿

s.k
s.k

スコア423

test CHANGED
File without changes
test CHANGED
@@ -38,6 +38,98 @@
38
38
 
39
39
 
40
40
 
41
+ 【user.rb】
42
+
43
+ ```
44
+
45
+ class User < ActiveRecord::Base
46
+
47
+ attr_accessor:remember_token
48
+
49
+ before_save{self.email = email.downcase}
50
+
51
+ validates:name, presence: true, length: { maximum: 50}
52
+
53
+ VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
54
+
55
+ validates:email, presence: true, length: {maximum: 255 },
56
+
57
+ format:{with: VALID_EMAIL_REGEX},
58
+
59
+ uniqueness: {case_sensitive: false}
60
+
61
+ has_secure_password
62
+
63
+ validates :password, presence: true, length: {minimum: 6}
64
+
65
+
66
+
67
+
68
+
69
+ def User.digest(string)
70
+
71
+ cost = ActiveModel::SecurePassword.min_cost?BCrypt::Engine::MIN_COST:BCrypt::Engine.cost
72
+
73
+ BCrypt::Password.create(string, cost: cost)
74
+
75
+ end
76
+
77
+
78
+
79
+ def User.new_token
80
+
81
+ SecureRandom.urlsafe_base64
82
+
83
+ end
84
+
85
+
86
+
87
+ def remember
88
+
89
+ self.remember_token = User.new_token
90
+
91
+ update_attribute(:remember_digest, User.digest(remember_token))
92
+
93
+ end
94
+
95
+
96
+
97
+ def remember_token
98
+
99
+ self.remember_token = User.new_token
100
+
101
+ update_attribute(:remember_digest, User.digest(remember_token))
102
+
103
+ end
104
+
105
+
106
+
107
+ def authenticated?(remember_token)
108
+
109
+ return false if remember_digest.nil?
110
+
111
+ BCrypt::Password.new(remember_digest).is_password?(remember_token)
112
+
113
+ end
114
+
115
+
116
+
117
+ def forget
118
+
119
+ update_attribute(:remember_digest, nil)
120
+
121
+ end
122
+
123
+
124
+
125
+ end
126
+
127
+ ```
128
+
129
+
130
+
131
+
132
+
41
133
  【sessions_helper.rb】
42
134
 
43
135
  ```