У меня есть запрос PostgreSQL, который я бы хотел написать в ActiveRecord (Rails 4), но у меня возникли проблемы с его правильной работой.Массовое обновление объединенной таблицы с ActiveRecord update_all и Rails 4
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'
Это то, что я пробовал:
Chat.joins(:messages)
.where("message.created_at >= '2014-10-10'")
.update_all('chat.email = message.source_name')
Но он создает запрос, как это:
UPDATE "chats"
SET chat.email = message.source_name
WHERE "chats"."id" IN (
SELECT "chats"."id"
FROM "chats"
INNER JOIN "messages"
ON "messages"."chat_id" = "chats"."id"
WHERE (message.created_at >= '2014-10-10')
)
Любая помощь по этому вопросу?
Вы также можете использовать оператор 'execute'. –