Работа с относительно большим набором данных У меня есть ситуация, когда мне нужно загрузить данные в связанную таблицу, а затем в процессе связанные объекты должны вызвать обратный вызов первого объекта.Однако, похоже, он не заполняет обратную ссылку на объект и поэтому даже использует: include, у него много SQL-запросов
Например:
class Movie
belongs_to :title
end
class Title
has_one: movie
end
Сначала я загружаю данныечерез
Movie.all(:include => [ :title ])
Это приводит к двум запросам sql.Один, чтобы загрузить все фильмы, и один, чтобы загрузить все заголовки по идентификатору.
Второе (в целях простой демонстрации) Я хочу использовать заголовок, чтобы вернуть фильм.
movies.collect{ |movie|
cur_title = movie.title
back_reference = cur_title.movie
}
Вот в чем проблема.Я бы предположил, что дальнейшие запросы не потребуются, поскольку обе стороны отношения один-к-одному уже загружены.Однако вторая строка в сборнике заставляет много новых запросов загружать каждый «фильм» в заголовке.Есть ли способ, чтобы rails автоматически заполняли эту обратную ссылку в заголовке, чтобы избежать многих дополнительных (избыточных) запросов, или это можно сделать вручную простым способом?
Запуск под Rails 2.3.12