Od Chat.update_all
doda UPDATE chats SET...
jedyny sposób, w jaki przychodzi mi do głowy uzyskać rails do wykonania aktualizacji z aliasem (UPDATE chats AS c
) jest przy użyciu connection.update
i ciąg 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'
});
Nie jest to świetne, jeśli chcesz uniknąć fragmentów SQL, ale użycie złączenia, jak w twoim pytaniu, może być jedynym sposobem, jeśli chcesz użyć AREL.