2016-07-24 44 views
0

我無法嘗試讓我的訂單顯示頁面僅顯示與屬於該訂單的所有訂單項目一起選擇的訂單。例如:/ orders/8應該只顯示訂單#8。我現在的代碼顯示了所有的訂單,當我去這個鏈接。我很確定我需要用別的東西替換控制器的show部分中的.all,但我似乎無法弄清楚可能是什麼?Rails:如何僅在展示頁面上顯示選定的順序?

The associations are: 
orders have many order_items 
order_items belong to an order 

這裏是當前顯示的頁面視圖:

<% @orders.each do |order| %> 
     <div class="panel panel-default"> 
       <div class="panel-heading"> 
        <h3 class="panel-title"><p>Order Total = <%= order.total %><p/></h3> 
       </div> 
      <div class="panel-body"> 

       <% order.order_items.each do |order_item| %> 

        <p>Order ID = <%= order_item.order_id %> 
       Product ID = <%= order_item.product_id %> 
        Unit Price = <%= order_item.unit_price %></p> 

       <% end %> 
     </div> 
</div> 
    <% end %> 

訂單控制器:

class OrdersController < ApplicationController 
     def index 
      @orders = Order.all 

      @order_items = OrderItem.all 



     end 

     # GET /posts/1 
     # GET /posts/1.json 
     def show 

      @orders = Order.all 

     end 

    end 

提前任何幫助謝謝!

回答

1
def show 
@order = Order.find(params[:id]) 
end 

也改變@order到@訂購顯示頁面。

0

@pavan是對的。你也根本不需要<% @orders.each do |order| %>

刪除循環和後更改@orders@order,改變<%= order.total %><%= @order.total %><% order.order_items.each do |order_item| %><% @order.order_items.each do |order_item| %>

相關問題