如何使用id来显示它的名称? (凤凰框架)

时间:2016-05-16 11:16:25

标签: postgresql elixir phoenix-framework

我有3张桌子,食物,订单和订单商品。在食品表中,它有food_id,名称和价格。订单表有order_id和日期。在order_items表中,它有order_id,food_id和quantity。

schema "orders" do 
has_many :order_items, Myapp.OrderItem

timestamps


schema "foods" do
field :name, :string
field :price, :integer

has_many :order_items, Myapp.OrderItem

timestamps



schema "order_items" do
field :quantity, :integer
belongs_to :order, Myapp.Order
belongs_to :food, Myapp.Food

timestamps

我想问的是,我可以在order_items表中使用food_id数据来显示其价格和名称吗?如果我能做到这一点,我该怎么做?

1 个答案:

答案 0 :(得分:1)

您想要通过食物获取订单,您可以使用Repo.preload/2预先加载关键字列表:

order = Repo.get(Order, 1) |> Repo.preload(order_items: :food)

您尚未指定要显示项目的格式。要在EEx模板中输出它们,您可以执行以下操作:

<%= for order_item <- @order.order_items do %>
  <%= order_item.food.name %> (<%= order_item.food.price %>)
<% end %>