У меня есть следующее (это было упрощено, чтобы сделать вопрос под рукой более очевидным):
user model has_many favorites
favorite model belongs_to user
После создания нового пользователя я хочу скопировать все избранное из существующего пользователя вновый пользователь.Прямо сейчас у меня есть следующий код:
# bob is the existing user and sam is the new user
bob.favorites.each do | f |
u = Favorite.new(f.attributes)
u.user_id = sam.user_id
u.save!
end
Это создает SQL INSERT для каждого фаворита, который есть у bob.
Я знаю, что SQL может сделать это в одной команде с чем-то вроде:
INSERT INTO favorites SELECT url, sam.user_id AS user_id FROM
favorites WHERE user_id = bob.user_id
Имеет ли ActiveRecord что-то для меня, чтобы сделать это?Было бы неплохо хранить код на Ruby, а не на SQL.
Заранее спасибо.