次のことが可能かどうか疑問に思っています
たくさんの記事があり、たくさんの写真があります。
すべての記事と記事に属するすべての写真セットを表示しようとしています。コントローラーで私に次のことをしたい
@mosttop = Article.all[1..-1]
@loc = @mosttop.photos
次のことが可能かどうか疑問に思っています
たくさんの記事があり、たくさんの写真があります。
すべての記事と記事に属するすべての写真セットを表示しようとしています。コントローラーで私に次のことをしたい
@mosttop = Article.all[1..-1]
@loc = @mosttop.photos
のセットがありarticles
ます。Article.all[1..-1]
なんらかの理由で使用するので、そのまま使用します。
次に、すべてphotos
をarticles
1 つのセットにマージしphotos
ますか?
を使用しているので、使用Rails
できますflat_map
@articles = Article.all[1..-1]
@photos = @articles.flat_map(&:photos)
@photos.each do |photo|
# show photo
end
# app/models/article.rb
has_many :photos
# app/models/photo.rb
belongs_to :article
# app/controllers/article_controller.rb
def index
@articles = Article.include(:photos).all
end
# app/views/articles/index.html.erb
<%= render :partial => "articles/article_with_photos", :collection => @articles
# app/views/articles/_article_with_phots.html.erb
<H2><%= article.title %></H2>
Photos
<ul>
<% article.photos.each do |photo| %>
<li><%= image_tag(photo.url) %></li>
<% end %>
</ul>