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
    • 計劃2

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

    • 計劃1
      • 附表1
      • 附表2
      • 附表3

我試圖與此查詢,但它只檢索 「通道」 -rows(沒有程序和時間表)

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

回答

1

我不會推薦你t o以這種方式得到所有的行。

做這樣的事情。

在你的控制,例如在索引操作

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