Siden Chat.update_all
vil tilføje UPDATE chats SET...
den eneste måde jeg kan komme i tanke om at få rails til at lave en opdatering med et alias (UPDATE chats AS c
) er ved at bruge connection.update
og en sql-streng:
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'
});
Ikke fantastisk, hvis du vil undgå SQL-fragmenter, men at bruge en a join som i dit spørgsmål kan være den eneste måde, hvis du vil bruge AREL.