我有一个Movie
模型和一个MovieStream
模型。关系是 Movie has_many
MediaType(和 MediaType belongs_to
Movie)。
MediaType 有两个属性“url_broken”(真/假)和“dvd”(真/假)。
在我看来,我有:
Movie.all.includes(:movie_item).each do |movie|
render partial: 'movie_item'
end
在movie_item
-部分我有(简化):
<h1><%= movie.title %></h1>
<% if movie.media_types.where(:url_broken => false).blank? %>
No media types exist
<% else %>
<h2>Streams</h2>
<% streams = movie.media_types.where(:dvd => false).each do |media_type| %>
* <%= media_type.name %>
<% end %>
<h2>Dvd's</h2>
<% dvds = movie.media_types.where(:dvd => true).each do |media_type| %>
* <%= media_type.name %>
<% end %>
这(显然)会导致 N+1 个查询,但我看不到任何解决方法。是否有可能以某种方式以我可以同时获得streams
and的方式查询视图查询dvds
?
喜欢:
Movie.all.join_stream_something.each do |movie, streams, dvds|
render partial: 'movie_item', :locals => { :movie => movie, :streams => streams, :dvds => dvds}
end
没有N+1?结尾