У меня есть база данных, полная историй, и каждая история принадлежит пользователю.
У меня уже есть атрибут user_id для каждой истории.
Я недавно добавил атрибут user_name ко всем своимтакже и истории.
Теперь все эти атрибуты user_name имеют значение nil.
В консоли я могу сделать Story.first.user_name = Story.first.user.name
, чтобы установить для атрибута user_name значение user.name первой истории.
Как я могу перебрать все мои истории в моей базе данных Postgresql и динамически обновлять значение user_name каждой истории?
Я хочу использовать что-то вроде метода update_all ActiveRecord, но с динамическим аргументом.
Я попытался в консоли Rails:
Story.update_all('user_name = Story.user.name')
, но вернулось:
SQL (36.2ms) UPDATE "stories" SET user_name = Story.user.name
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: missing FROM-clause entry for table "user"
LINE 1: UPDATE "stories" SET user_name = Story.user.name
^
: UPDATE "stories" SET user_name = Story.user.name
from (irb):14
Не знаете, как использовать FROM в сыром SQL или как написать правильную команду в ActiveRecord.