我有模型User
,Photo
和Favorite
,其中favorites
是从users
到photos
的联接表,即:< / p>
class User < ActiveRecord::Base
has_many :favorites
has_many :photos, through: `favorites`
end
class Photo < ActiveRecord::Base
has_many :favorites
has_many :users, through: `favorites`
end
class Favorite < ActiveRecord::Base
belongs_to :user
belongs_to :photo
end
假设@user
是User
的实例,而photo_ids
是照片的主键数组。将所有这些照片添加到@user.photos
的最快和/或最简洁的方式是什么?
我能做的最好的事情是:
@user.favorites.create( photo_ids.map { |id| {photo_id: id } } )
但这对我来说似乎很啰嗦。 Rails没有更好的处理方法吗?
其他问题讨论通过嵌套表单创建多个has_many: through:
关联,但我试图在JSON API中执行此操作,因此不涉及任何表单。
答案 0 :(得分:6)
怎么样
@user.photos << Photo.find_all_by_id(photo_ids)