1
我對Ruby語言和Rails很新。我目前正在建立一些簡單的用戶註冊程序。當我使用這些代碼的Rails拋出: 的隱式轉換,從零到字符串Ruby(Rails)變量範圍
這裏是原代碼:
require 'digest'
class User < ActiveRecord::Base
before_save :encrypt_password
protected
def encrypt_password
return if password.blank?
password = encrypt(password)
end
def encrypt(string)
Digest::SHA1.hexdigest(string)
end
end
但它的工作原理,如果我改變了這一行password = encrypt(password)
,以self.password = encrypt(password)
。我只是好奇,第一個代碼有什麼問題?
您還應該閱讀http://www.techotopia.com/index.php/Ruby_Variable_Scope – portforwardpodcast
http://stackoverflow.com/questions/5183664/why-isnt-self-always-needed-in-ruby- Rails的ActiveRecord的 –