2016-05-16 76 views
1

我有3張桌子,食物,訂單和訂購物品。在食物表中,它有food_id,名稱和價格。訂單表有order_id和日期。在order_items表中,它有order_id,food_id和quantity。如何使用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數據來顯示它的價格和名稱嗎?如果我能做到這一點,我該怎麼做?

回答

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 %> 
+0

謝謝,問題解決:) –