在 phoenix 模板中的实体之间访问
Accessing in between entity in phoenix template
我正在制作一种在校跟踪器,但我遇到了一个问题。我有两个主要实体用户、事件和实体存在,它们之间将它们绑定在一起。我正在访问模板中的主要实体,但我需要访问实体之间的相关内容以读取状态(如果存在状态 1 绿色 bg 如果 0 红色)
用户:
schema "users" do
field :login, :string
field :password, :string
#stuff
has_many :presences, Presence
has_many :events, through: [:presences, :event]
timestamps
end
事件:
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>
最后是行动:
def show(conn, %{"id" => id}) do
event = Repo.get!(Event, id) |> Repo.preload([:users])
render(conn, "show.html", event: event)
end
您可以更改您的理解以使用 presences
(将在预加载用户时预加载。)每个存在将包含您需要的 user
。
<%= 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 %>
我正在制作一种在校跟踪器,但我遇到了一个问题。我有两个主要实体用户、事件和实体存在,它们之间将它们绑定在一起。我正在访问模板中的主要实体,但我需要访问实体之间的相关内容以读取状态(如果存在状态 1 绿色 bg 如果 0 红色)
用户:
schema "users" do
field :login, :string
field :password, :string
#stuff
has_many :presences, Presence
has_many :events, through: [:presences, :event]
timestamps
end
事件:
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>
最后是行动:
def show(conn, %{"id" => id}) do
event = Repo.get!(Event, id) |> Repo.preload([:users])
render(conn, "show.html", event: event)
end
您可以更改您的理解以使用 presences
(将在预加载用户时预加载。)每个存在将包含您需要的 user
。
<%= 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 %>