2016-09-03 10 views
-5

新しいユーザーを作成しようとしたとき、私は、レールコンソールでこのエラーを取得しています:Railsユーザーモデルの構文エラー?

models/user.rb:32: syntax error, unexpected tSTRING_DEND, expecting ')' 

... "#{Time.now.utc} - #{パスワード}"})self.new_recordか?私は、エラーのわからない

class User < ActiveRecord::Base 
attr_accessor :password 
attr_accessible :name, :email, :password, :password_confirmation 

email_regex = /\A[\w+\-.][email protected][a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i 

validates :name,  :presence => true 

validates :email,  :presence => true, 
      :format    => { :with => email_regex }, 
      :uniqueness   => { :case_senstive => false } 

validates :password, :presence => true, 
      :confirmation   => true, 
      :length    => { :within => 6..40 } 

before_save :encrypt_password 

def has_password?(submitted_password) 
    encrypted_password == encrypt(submitted_password) 
end 

def self.authenticate(email, submitted_password) 
    user = find_by_email(email) 

    return nil if user.nil? 
    return user if user.has_password?(submitted_password) 
end 
private 
    def encrypt_password 
    #generate salt for new user 
    self.salt = Digest::SHA2.hexdigest("#{Time.now.utc}--#{password}"}) if self.new_record? 

    #encrypt password; store in encrypted_password 
    self.encrypted_password = encrypt_password 
end 

#encrypt with salt 
def encrypt(pass) 
    Digest::SHA2.hexdigest("#{self.salt}--#{pass}") 
end 

エンド

が、コンソールは、後に括弧を指すん - #{パスワード} "}) ^

:ここ

は私のモデルであります

答えて

0

の末尾に余分な}シンボルを持っているあなたの方法

を変更
def encrypt_password 
    #generate salt for new user 
    self.salt = Digest::SHA2.hexdigest("#{Time.now.utc}--#{password}") if self.new_record? 

    #encrypt password; store in encrypted_password 
    self.encrypted_password = encrypt_password 
end 

構文エラーは、それがあるべき

self.salt = Digest::SHA2.hexdigest("#{Time.now.utc}--#{password}"}) if self.new_record? 

にあった

self.salt = Digest::SHA2.hexdigest("#{Time.now.utc}--#{password}") if self.new_record? 

あなたは与えている余分な '}'

1
self.salt = Digest::SHA2.hexdigest("#{Time.now.utc}--#{password}"}) if self.new_record? 

この

で上記の行を置き換え210
self.salt = Digest::SHA2.hexdigest("#{Time.now.utc}--#{password}") if self.new_record? 
関連する問題