質問するログイン新規登録

質問編集履歴

1

情報の追加

2016/09/17 02:30

投稿

s.k
s.k

スコア423

title CHANGED
File without changes
body CHANGED
@@ -18,6 +18,52 @@
18
18
  ```
19
19
 
20
20
 
21
+ 【user.rb】
22
+ ```
23
+ class User < ActiveRecord::Base
24
+ attr_accessor:remember_token
25
+ before_save{self.email = email.downcase}
26
+ validates:name, presence: true, length: { maximum: 50}
27
+ VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
28
+ validates:email, presence: true, length: {maximum: 255 },
29
+ format:{with: VALID_EMAIL_REGEX},
30
+ uniqueness: {case_sensitive: false}
31
+ has_secure_password
32
+ validates :password, presence: true, length: {minimum: 6}
33
+
34
+
35
+ def User.digest(string)
36
+ cost = ActiveModel::SecurePassword.min_cost?BCrypt::Engine::MIN_COST:BCrypt::Engine.cost
37
+ BCrypt::Password.create(string, cost: cost)
38
+ end
39
+
40
+ def User.new_token
41
+ SecureRandom.urlsafe_base64
42
+ end
43
+
44
+ def remember
45
+ self.remember_token = User.new_token
46
+ update_attribute(:remember_digest, User.digest(remember_token))
47
+ end
48
+
49
+ def remember_token
50
+ self.remember_token = User.new_token
51
+ update_attribute(:remember_digest, User.digest(remember_token))
52
+ end
53
+
54
+ def authenticated?(remember_token)
55
+ return false if remember_digest.nil?
56
+ BCrypt::Password.new(remember_digest).is_password?(remember_token)
57
+ end
58
+
59
+ def forget
60
+ update_attribute(:remember_digest, nil)
61
+ end
62
+
63
+ end
64
+ ```
65
+
66
+
21
67
  【sessions_helper.rb】
22
68
  ```
23
69
  module SessionsHelper