Предупреждение, которое вы видите, является попыткой Rails 3 отговорить вас от перезаписи базовых before_*
и after_*
методов.Это похоже на то, как у вас будет before_filter
и другие обратные вызовы в вашем контроллере.
Это означает, что вместо того, чтобы делать:
def before_create
self.username.downcase!
self.salt = User.make_salt(self.username)
self.hashed_password = User.hash_with_salt(@password, self.salt)
end
Rails хочет, чтобы вы делали:
before_create :downcase_username_and_create_password
def downcase_username_and_create_password
self.username.downcase!
self.salt = User.make_salt(self.username)
self.hashed_password = User.hash_with_salt(@password, self.salt)
end
В этом случае вы можете даже разделить их на две части, так как может существовать вероятность того, что вы захотите сгенерировать пароль независимо:
before_create :downcase_username, :create_password
def downcase_username
self.username.downcase!
end
def create_password
self.salt = User.make_salt(self.username)
self.hashed_password = User.hash_with_salt(@password, self.salt)
end