0

我有三个模型:

dimension_mois 
Admin::Style
Admin::Album

它们是这样相关的:

**DimensionMois**
has_many :admin_styles, :class_name=>"Admin::Style"

**Admin::Style**
has_many :admin_albums, :class_name=>"Admin::Album"

**Admin::Album**
belongs_to :admin_style, :class_name=>"Admin::Style"
belongs_to :dimension_mois

页面的概念是显示类似的内容:

我想要的架构

我想每个月都显示这个。每个月可以有 N 种样式。每种风格可以有 N 张专辑。

我不知道该怎么做。我尝试过使用 group_by,但结果从来都不是很好。

任何想法 ?谢谢你。

4

1 回答 1

1

你可能想多了这个问题。我相信您只需要遍历对象及其关联,如下所示:

@dimension_moises = DimensionMois.includes(:admin_styles => :admin_albums)
// Using Haml syntax
%ul
  - @dimension_moises.each do |dimension_mois|
    %li
      = dimension_mois.name
      %ul
        - dimension_mois.admin_styles.each do |admin_style|
          %li
            = admin_style.name
            %ul
              - admin_style.admin_albums.each do |admin_album|
                %li= admin_album.title

这将为您提供所有 DimensionMois 的嵌套分层列表,其中包含该对象的 Admin::Styles 和 Admin::Albums。您可以使用 CSS、JS 来设置该列表的样式。

于 2013-09-13T18:29:39.367 回答