2013-07-08 34 views
0

我有一个名为“Shoes”的模型,属于名为“History”的模型。我想在历史show.html.erb页面中显示所有的鞋子,但我想按发布日期对它们进行分组。 (我有一个称为释放的属性)。按年组的职位 - Rails

我使用的是从Railscasts这个例子:

shoes_controller

def index 
    @shoes = Shoe.all(:order => 'release, name') 
    @release_year = @shoes.group_by { |t| t.release.beginning_of_year } 
end 

鞋index.html.erb视图

<% @release_year.each do |release, shoes| %> 
    <% shoes.each do |shoe| %> 
    <%= shoe.name %> 
    <% end %> 
<% end %> 

我希望能够做到这但在我的历史 show.html页面,我怎么能做到这一点?

我有什么至今:

历史show.html.erb

<% @history.shoes.each do |shoe| %> 
    <div class="shoe"> 
    <%= shoe.name %> 
    </div> 
<% end %> 

感谢。

回答

0

也许你可能需要创建在鞋的看法偏一_shoes_by_year,然后渲染鞋集合:

的意见/鞋/ _shoe.html.erb

<div class=shoe> 
    <%= shoe.name %> 
</div> 

的意见/鞋/ _shoes_by_year .html.erb

<% shoes_by_year.each do |release_year, shoes| %> 
    <div> 
    <h3><%= release_year.year %></h3> 
    <%= render 'shoes/shoe', collection: shoes %> 
    </div> 
<% end %> 

histories_controller.rb

def show 
    ... 
    @shoes = @history.shoes.group_by { |shoe| shoe.release.at_beginning_of_year } 
end 

/views/history/show.html.erb

... 
<%= render 'shoes/shoes_by_year', object => @shoes %> 
+0

感谢您的帮助! – ChrisBedoya