视图Rails中的嵌套视图

时间:2016-02-03 20:01:42

标签: ruby-on-rails ruby ruby-on-rails-4 haml

如何在每个活动中显示属于每个活动的出席情况?

Event.rb:

class Event < ActiveRecord::Base
  has_many :attendances, dependent: :destroy

活动/索引:

%h1 Listing events
%table
  %thead
    %tr
      %th Starts at
      %th Duration

  %tbody
    - @events.each do |event|
      %tr
        %td= event.starts_at
        %td= event.duration

%br

我尝试了这段代码,但它完全呈现了每个事件下的所有出席情况:

%table
  %thead
    %tr
      %th Starts at
      %th Duration

  %tbody
    - @events.each do |event|
      %tr
        %td= event.starts_at
        %td= event.duration
        - @attendances.each do |attendance|
          %tr
            %td= attendance.guest
            %td= attendance.attendance_rate
            %td= attendance.event
%br

看起来我必须改变数组中的某些内容。在控制器?

1 个答案:

答案 0 :(得分:1)

因为您已经定义了一个指示“事件有很多出席”的关联,您可以从事件记录本身访问这些出勤记录。

以下内容应该足够了:

%tbody
  - @events.each do |event|
    %tr
      %td= event.starts_at
      %td= event.duration
      - event.attendances.each do |attendance|
        %tr
          %td= attendance.guest
          %td= attendance.attendance_rate
          %td= attendance.event

通过event本身访问出席情况,您不会得到所有额外的出勤记录(您只能获得与当前访问的事件相关的记录)。