Ruby 객체 (구체적으로 ActiveRecord 객체)는 User
입니다. find_by_id
, find_by_auth_token
등과 같은 메소드에 응답합니다. 그러나 이들은 def
또는 define_method
을 통해 정의 된 메소드가 아닙니다. 대신, 이들은 동적 메서드이며 method_missing
을 통해 처리됩니다.Object # 메소드 및 동적 응답자
User.method(:find_by_auth_token)
그것은이처럼 보이지 않는 :, Object#method
를 통해 예컨대 이러한 방법 중 하나에 대한 참조를 얻 싶습니다
하지만 작동합니다. 가장 좋은 해결책은 다음과 같습니다.
proc { |token| User.find_by_auth_token(token) }
이와 같은 래퍼 방법을 사용하는 데는 다른 방법이 있습니까? 동적 메서드에 실제로 Object#method
을 사용할 수 없습니까?
는, 이러한 동적 파인더 방법이 레일에서 더 이상 사용되지 않습니다 4.0. 나는 개인적으로 그들 위에 추가 기능을 추가하는 것에 신중할 것입니다. https://github.com/rails/activerecord-deprecated_finders –