before_create in rails model

Pat*_*ick 6 ruby-on-rails

我有一个Rails模型Username,emailhash领域.

通过执行以下操作将数据保存到此:

@u = User.create(:name=>'test', :email=>"test@mail.com")
@u.save
Run Code Online (Sandbox Code Playgroud)

如何合并before_create回调,以便在保存记录之前,哈希值通过以下代码获取哈希字符串:

Digest::SHA1.hexdigest('something secret' + email)
Run Code Online (Sandbox Code Playgroud)

我的User模型怎么样?

class Employee < ActiveRecord::Base
   before_create :set_hash

   def set_hash 
      //what goes in here?
   end
end
Run Code Online (Sandbox Code Playgroud)

Zac*_*ght 8

您可以使用self关键字访问(和更改)当前模型的实例变量.

def set_hash
  self.email = Digest::SHA1.hexdigest('something secret' + self.email)
end
Run Code Online (Sandbox Code Playgroud)