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的 –