我有 3 个表、食物、订单和订单项。在 foods 表中,它有 food_id、name 和 price。订单表有 order_id 和日期。在 order_items 表中,它有 order_id、food_id 和数量。
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数据来显示它的价格和名称吗?如果我能做到这一点,我怎么能做到这一点?
最佳答案
你想获取包含食物的订单,你可以使用 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 %>
关于postgresql - 如何使用 id 来显示它的名称? ( Phoenix 框架),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37252613/