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