0

我想知道是否可以执行以下操作

我有很多文章,我有很多照片。

我正在尝试显示所有文章和属于该文章的所有照片集。在控制器中对我来说,我想做以下事情

@mosttop = Article.all[1..-1]
@loc = @mosttop.photos
4

2 回答 2

2

所以你有一套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
于 2012-11-14T01:05:26.677 回答
1
# 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>
于 2012-11-14T18:30:08.797 回答