От 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.