我有一個名爲User
的Ruby對象(特別是ActiveRecord對象)。它響應了諸如find_by_id
,find_by_auth_token
等方法。但是,這些不是通過def
或define_method
定義的方法。相反,它們是通過method_missing
處理的動態方法。對象#方法和動態響應器
我想通過Object#method
獲取到的這些方法中的一種參考,例如:
User.method(:find_by_auth_token)
它看起來並不像這個作品雖然。我提出的最佳解決方案是:
proc { |token| User.find_by_auth_token(token) }
是否有任何其他解決方法使用這種包裝方法?我真的無法使用動態方法Object#method
?
任何人誰在未來這個失蹄,這些動態finder方法將在Rails中被棄用4.0。我個人會謹慎地在其上增加額外的功能。 https://github.com/rails/activerecord-deprecated_finders –