我想知道是否可以执行以下操作
我有很多文章,我有很多照片。
我正在尝试显示所有文章和属于该文章的所有照片集。在控制器中对我来说,我想做以下事情
@mosttop = Article.all[1..-1]
@loc = @mosttop.photos
我想知道是否可以执行以下操作
我有很多文章,我有很多照片。
我正在尝试显示所有文章和属于该文章的所有照片集。在控制器中对我来说,我想做以下事情
@mosttop = Article.all[1..-1]
@loc = @mosttop.photos
所以你有一套articles
. 您Article.all[1..-1]
出于某种原因使用,所以我会坚持使用它。
然后你希望每photos
一个都articles
合并成一组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>