Я сталкиваюсь с некоторыми немного сложными проблемами с устаревшей БД.Кажется, все работает нормально, если я просто изменил имя столбца «пароль» в БД на «encrypted_password»;однако мне нужно оставить базу данных на месте.
Поэтому я решил использовать
alias_attribute :encrypted_password, :password
Теперь я получаю сообщение об ошибке «слишком большой уровень стека» в консоли.
Моя модель пользователя:
class User < ActiveRecord::Base
require "digest/sha1"
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :encryptable, :encryptor => :old_cakephp_auth
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me
has_many :events
before_create :add_default_values
#alias_attribute :created_at, :created
#alias_attribute :updated_at, :updated
alias_attribute :encrypted_password, :password
def add_default_values
self.created = Time.now
self.updated = Time.now
self.image = ""
self.name = self.email.split("@").first
#make normal user
self.role_id = 2
self.username = self.email.split("@").first + rand(100000000000000).to_s
self.website = ""
end
def valid_password?(password)
return false if encrypted_password.blank?
Devise.secure_compare(Digest::SHA1.hexdigest(self.password_salt+password), self.encrypted_password)
end
end
Идеи?Спасибо!!!:)