Rails & ActiveRecord 复杂查询:通过对象呈现has_many集合,同时替换一列



我有一个List模型。列表具有:lists_movies和has_many:电影到:lists_movies和has_many:预告片到:电影。ListsMovie有一个list_id、movie_id和title列。

我想在给定的列表中呈现电影的所有预告片,填充所有预告片数据和list_movie.title。实现这一点的最佳方法是什么?

如果我只是想渲染预告片,我可以去:

@trailers = @list.trailers
@trailers.each do |t|
t.description
t.youtube_id
end

但我也想要列表中的标题:

@trailers.each do |t|
list_movie.title
t.description
t.youtube_id
end

基本上,我尝试迭代并从两个不同的对象中获取数据。。但是在我应该加载哪些集合时遇到了问题。

试着用英语写下查询:"对于每个列表,我都想写下该电影的list_movie标题和每个预告片",用ruby可以很容易地翻译为:

@list.lists_movies.each do |list_movie|
# list_movie.title
list_movie.movie.trailers.each do |trailer|
# trailer.description
# trailer.youtube_id
end
end

最新更新