Я, честно говоря, понятия не имел, как это назвать по-другому (или что на самом деле искать).
Итак, в моем ActiveRecord (... app / model / s / account.rb /) у меня есть следующее:
validates :username, :password, :email, :presence => true
validates :username, :email, :uniqueness => true
validates :username, :length => { :within => 5..30}
validates :password, :length => { :within => 6..128}
validates :password, :confirmation => true
validates :email, :format => { :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i }
before_save :encrypt_password
private
def encrypt_password
require "digest"
@account.password = Digest::SHA1.hexdigest(@account.password)
end
И я получаю ошибку:
неопределенный метод `пароль 'для nil: NilClass
Почему он сообщает @account
как ноль? Ну, может быть потому, что @account не существует вне View / Controller, но я (честно говоря, бог) не мог придумать какой-либо другой способ сделать это.
P.S .: Я попытался поместить encrypt_password
в контроллер; это все еще не работало (другая ошибка, хотя).