Da Chat.update_all
aggiungerà UPDATE chats SET...
l'unico modo in cui mi viene in mente di ottenere Rails per eseguire un aggiornamento con un alias (UPDATE chats AS c
) utilizzando connection.update
e una stringa 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'
});
Non eccezionale se vuoi evitare frammenti SQL, ma usare un join come nella tua domanda potrebbe essere l'unico modo se vuoi usare AREL.