Как удовлетворить ассоциацию нагрузки для массива модельных записей У меня есть массив записей модели Rails. Можно ли желать загружать связь для всех этих записей за один раз (запрос)? Иногда у меня только массив, а не AR:: Scope. И иногда я хочу, чтобы динамически выбирать, что нужно загружать позже. Ответ 1 В Rails 3 можно использовать preloader, чтобы присоединить ассоциации к существующим записям. ActiveRecord::Associations::Preloader.new(posts,:comments).run() В Rails 4.1+ сигнатура вызова немного изменилась: ActiveRecord::Associations::Preloader.new.preload(posts,:comments) Ответ 2 Ну, вы можете переделать эти объекты. Map ': id' над вашим массивом, чтобы получить идентификаторы записей, а затем переделать, на этот раз с нетерпением загрузки. Если ваш массив, скажем, Post записей модели, posts, то это будет: Post.find(posts.map &:id).includes(:blah)
Ответ 1 В Rails 3 можно использовать preloader, чтобы присоединить ассоциации к существующим записям. ActiveRecord::Associations::Preloader.new(posts,:comments).run() В Rails 4.1+ сигнатура вызова немного изменилась: ActiveRecord::Associations::Preloader.new.preload(posts,:comments)
Ответ 2 Ну, вы можете переделать эти объекты. Map ': id' над вашим массивом, чтобы получить идентификаторы записей, а затем переделать, на этот раз с нетерпением загрузки. Если ваш массив, скажем, Post записей модели, posts, то это будет: Post.find(posts.map &:id).includes(:blah)