Elixir 在phoenix模板中访问中间实体

Elixir 在phoenix模板中访问中间实体,elixir,phoenix-framework,ecto,Elixir,Phoenix Framework,Ecto,我正在制作一种学校状态跟踪器,但我遇到了一个问题。我有两个主要的实体用户、事件和实体存在,它们之间将它们绑定在一起。我正在访问模板中的主实体,但我需要访问相关中间实体以读取状态(如果状态为1绿色背景,如果状态为0红色) 用户: 活动: schema "events" do field :name, :string #Stuff has_many :presences, Presence, on_delete: :fetch_and_delete has_man

我正在制作一种学校状态跟踪器,但我遇到了一个问题。我有两个主要的实体用户、事件和实体存在,它们之间将它们绑定在一起。我正在访问模板中的主实体,但我需要访问相关中间实体以读取状态(如果状态为1绿色背景,如果状态为0红色)

用户:

活动:

schema "events" do
    field :name, :string

    #Stuff

    has_many :presences, Presence, on_delete: :fetch_and_delete
    has_many :users, through: [:presences, :user]
end
出席:

schema "presences" do
    field :state, :integer

    belongs_to :user, Kpsz.Model.User, foreign_key: :user_id
    belongs_to :event, Kpsz.Model.Event, foreign_key: :event_id

    timestamps
end
我的问题是我不知道如何访问状态,因为我使用的是这样的数据

模板:

<div class="row">
  <div class="col-lg-6">
    <ul>
      <li>
        <strong>Nazwa:</strong>
        <%= @event.name %>
      </li>
      </li>
    </ul>
    <div class="row">
    <%= for user <- @event.users do %>
      <div class="col-md-2 display-user">
        <div class="row">
          <%= user.class %>
        </div>
        <!-- i need access presence state here -->
        <div user_id="<%= user.id %>" event_id="<%= @event.id %>">
          Potwierdz
        </div>
      </div>
    <%= end %>
    </div>

  </div>
  <div class="col-lg-6" id="map-container">
  </div>
</div>

您可以将理解更改为使用
呈现
(在预加载用户时将预加载)。每个呈现将包含您需要的
用户

<%= for presence <- @event.presences do %>
  <div class="col-md-2 display-user">
    <div class="row">
      <%= presence.user.class %>
    </div>
    <%= presence.state %>
    <div user_id="<%= presence.user.id %>" event_id="<%= @event.id %>">
      Potwierdz
    </div>
  </div>
<%= end %>

波特维兹

ow。。。这比我想象的要容易。非常非常感谢。我马上去试试
def show(conn, %{"id" => id}) do
    event = Repo.get!(Event, id) |> Repo.preload([:users])
    render(conn, "show.html", event: event)
end
<%= for presence <- @event.presences do %>
  <div class="col-md-2 display-user">
    <div class="row">
      <%= presence.user.class %>
    </div>
    <%= presence.state %>
    <div user_id="<%= presence.user.id %>" event_id="<%= @event.id %>">
      Potwierdz
    </div>
  </div>
<%= end %>