내 모델에서 find_by_ 메서드를 재정의하고 싶습니다 ... 그 안에 원래 + 일부 추가 코드를 호출하고 싶습니다.find_by 메서드를 재정의하고 activerecord에서 원본을 호출하는 방법
class User < Activerecord::Base
def self.find_by_email(email)
binding.pry
super.find_by_email(email) || find_by_social_identities_email(email)
end
...
end
class User < Activerecord::Base
def self.find_by_email(email)
super.find_by('email = :email', {email: email}) || find_by_social_identities_email(email)
end
...
end
정의에서'.where (: email => email) .first' 메소드를 사용할 수 있습니다. –
Ruby Racer의 접근 방식을 사용하십시오. 동적 인 "find_by_ *"메소드는'method_missing'과 관련된 트릭을 사용하기 때문에 일반적인 메소드처럼 작동하지 않습니다. 이것이 아마도 '슈퍼'에서 호출하는 것이 실패하는 이유 일 것입니다. – Sharagoz
find_by _...가 find_by_email 메서드를 처음 만들게됨을 깨달았습니다. 그 안에는 거의 루비 레이서의 제안 인 find_by ('email = : email', {email : email})가 있습니다 ... – Boti