postgresql - 如何使用 id 来显示它的名称? ( Phoenix 框架)

标签 postgresql elixir phoenix-framework

我有 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/

相关文章:

elixir - Cron 任务量子 Elixir

json - 在 Elixir/Phoenix 应用程序中解析 JSON,不是在 Controller 或模型内部,而是从 "/lib"解析

elixir - => 和 : in an Elixir map? 有什么区别

postgresql - 如何向 PostgreSQL 添加自定义聚合函数(例如 MAX/MIN)?

postgresql - postgres 和 Unicorn 服务器的问题

erlang - 如何复制 Erlang 有向图?

reactjs - 如何在 JavaScript 中使用 Phoenix Controller 变量?

objective-c - 为了符合 MVC,我应该如何在 Cocoa 应用程序中进行数据库调用?

function - SELECT 和 FUNCTION 调用之间的查询行为不同

docker - Docker 上的 Erlang/Elixir 和热代码交换