before_create в модели рельсов - PullRequest
       0

before_create в модели рельсов

6 голосов
/ 03 августа 2010

У меня есть модель рельсов User с полями name, email и hash.

Я сохраняю данные для этого, выполнив:

@u = User.create(:name=>'test', :email=>"test@mail.com")
@u.save

Как включить обратный вызов before_create, чтобы перед сохранением записи значение хеш-функции получало строку хеш-кода следующим кодом:

Digest::SHA1.hexdigest('something secret' + email)

Как будет выглядеть моя User модель?

class Employee < ActiveRecord::Base
   before_create :set_hash

   def set_hash 
      //what goes in here?
   end
end

1 Ответ

8 голосов
/ 03 августа 2010

Вы можете получить доступ (и изменить) переменные экземпляра текущей модели, используя ключевое слово self.

def set_hash
  self.email = Digest::SHA1.hexdigest('something secret' + self.email)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...