पर विचारक्या ActiveRecord एसोसिएशन से केवल कुछ कॉलम मांगना संभव है?
def Foo
has_one :user
end
चलो कहते हैं कि मैं केवल एक Foo
के User
के नाम चाहते हैं, और नहीं अन्य स्तंभों में से किसी। तो मैं
SELECT name FROM "users" WHERE "prices"."id" = 123
चाहते हैं, लेकिन कर foo.user.name
मुझे
SELECT * FROM "users" WHERE "prices"."id" = 123
दे देंगे वहाँ संघ उपयोग करने के लिए केवल एक स्तंभ पाने के लिए किसी भी चालाक तरीका है?
User.select(:name).where(...)
इस से सिर्फ मूल्यों वापस आ जाएगी: आप क्या कॉलम आप .Select विधि का उपयोग कर, की तरह का चयन करना चाहते निर्दिष्ट कर सकते हैं
User.where(id: foo.user_id).pluck(:name).first
क्या इसके लिए कोई दायरा प्रतिनिधि होगा? एक गुंजाइश आम तौर पर एक ActiveRecord :: संबंध, खाली या नहीं देता है। एक विधि अधिक उपयुक्त होगी (या प्रतिनिधि?) – MrYoshiji
ठीक है, यह ActiveRecord क्वेरी विधियों की एक श्रृंखला है, इसलिए मुझे लगता है कि यह एक रिश्ते को वापस कर रहा है - इसके बारे में केवल अजीब चीज़ यह है कि यह बार क्लास पर बनाए गए संबंध को वापस कर देगी फू क्लास का - लेकिन एक बार जब आप 'some.otherthing.where()' पर गए हैं, तो आप वैसे भी ऐसा कर रहे हैं। एक विधि को परिभाषित करना हालांकि इसे पूरा करने का एक अच्छा तरीका होगा। मुझे ऐसा कुछ करने की ज़रूरत नहीं है, इसलिए मेरे पास वास्तव में संदर्भ का एक फ्रेम नहीं है जिसके लिए बेहतर होगा या क्यों। – Andrew