Я совершенно новый с языком 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- рельсы-ActiveRecord –