चूंकि Chat.update_all
जोड़ देगा UPDATE chats SET...
एकमात्र तरीका है कि मैं रेल को उपनाम के साथ अद्यतन करने के बारे में सोच सकता हूं (UPDATE chats AS c
) connection.update
. का उपयोग करके है और एक sql स्ट्रिंग:
Chat.connection.update(Q%{
UPDATE chats AS c
SET email = m.source_name
FROM messages AS m
WHERE c.id = m.chat_id
AND m.created_at >= '2014-10-10'
});
यदि आप SQL अंशों से बचना चाहते हैं तो बहुत अच्छा नहीं है, लेकिन यदि आप AREL का उपयोग करना चाहते हैं तो अपने प्रश्न में शामिल होने का एकमात्र तरीका हो सकता है।