视图中的嵌套视图 Rails

Nested views in a view Rails

如何在每个活动下显示属于每个活动的出席人数?

Event.rb:

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

Events/index:

%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

看来我必须更改数组和控制器中的某些内容?

因为您已经定义了一个指示 "event has many attendances" 的关联,您可以从事件记录本身访问这些出勤记录。

遵循以下内容就足够了:

%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 本身访问出席情况,您不会得到所有额外的出席记录(您只会获得与当前访问的事件关联的记录)。