aliassing的方法在一個插件我寫我使用別名來覆蓋默認的Rails的驗證,像這樣的一個:的respond_to結合在Rails的
# Alias the original validator so it's still available under a different name
alias original_validates_uniqueness_of :validates_uniqueness_of unless method_defined?(:original_validates_uniqueness_of)
# Then alias the custom validator under the original name
alias validates_uniqueness_of :custom_validates_uniqueness_of
這一切都工作得很好。當在AR模型的屬性中定義「validates_uniqueness_of」時,它將使用我的「custom_validates_uniqueness_of」方法。驗證按預期運行。
然而,當我打電話:
SomeARclass.respond_to?(:validates_uniqueness_of)
..它會返回false。這種行爲將與幾個流行的插件混淆。
我的問題:
爲什麼respond_to返回「false」?這是行爲的結果嗎?如何調整我的自定義驗證器使其返回true?
謝謝你的幫助。
Erwin
你試過定義一個調用別名的實際方法嗎? –
'scoped_validates_uniqueness_of'是一個'private'方法嗎? – yfeldblum
@Jessice:這實際上是問題,這是一種私人方法。感謝您指點我正確的方向。如果你把它作爲答案發布,我會很樂意接受它。 – ErwinM