我有我的設計用戶模型驗證,我想覆蓋valid_password方法,這一點,在我的user.rb類定義裏面我有如何覆蓋valid_password?(密碼)在設計
class User < ActiveRecord::Base
devise :database_authenticatable
# overwriting the valid_password from database_authenticatable
module PostDatabaseAuthenticatable
def valid_password?(password)
if old_password
# do something new
else
# call valid_password from DatabaseAuthenticatable
super
end
end
end
include PostDatabaseAuthenticatable
end
所以首先,我們通過設計包含database_authenticatable,然後根據我讀的Rails 3: alias_method_chain still used?包含我的PostDatabaseAuthenticatable,它應該完全覆蓋devise的valid_password方法。
但是當我運行我的代碼時,它總是先調用它,然後再調用設計,所以根本不覆蓋它。
任何想法,爲什麼?
這些都是類方法重載但是,我的是模塊化設計方法,覆蓋 – Matilda
爲什麼不直接定義' 'User'類本身的valid_password?'這裏不需要在模塊中。 – RipTheJacker
其實這就是我所做的:) – Matilda