0
class Channel < ActiveRecord::Base
  has_many :programs

end

class Program < ActiveRecord::Base
  belongs_to :channel
  has_many :program_schedules

end

class ProgramSchedule < ActiveRecord::Base
  belongs_to :program
end

我想得到一个这样的数据数组:

  • 频道 1:

    • 程序 1

      • 附表1
    • 节目二

      • 附表1
      • 附表2
      • 附表 3
  • 频道 2:

    • 程序 1
      • 附表1
      • 附表2
      • 附表 3

我试过这个查询,但它只检索“频道”行(没有节目和时间表)

 @data = Channel.joins(:programs => :program_schedules).group("channel_id")
4

1 回答 1

1

我不建议您以这种方式获取所有行。

做这样的事情。

在您的控制器中,在索引操作中说

def index
  @channels = Channel.all
end

在要显示所有内容的视图中。

%ul#channels
  = @channels.each do |channel|
    %li= channel.name
    %ul.channel
      = channel.programs.each do |program|
        %li= program.name
        %ul.program
          = program.schedules.each do |schedule|
            %li= schedule.name
于 2012-10-23T22:20:39.643 回答