मैं एक रूबी वस्तु (एक ActiveRecord वस्तु, विशेष रूप से) User
नामित किया है। यह 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
का उपयोग करने में असमर्थ हूं?
किसी को जो भविष्य में इस पर ठोकर के लिए, इन गतिशील खोजक तरीकों रेल में हटा दिया जाएगा 4.0। मैं व्यक्तिगत रूप से उन पर शीर्ष कार्यक्षमता जोड़ने की सतर्क रहूंगा। https://github.com/rails/activerecord-deprecated_finders –