我无法尝试获取订单显示页面,只显示与该订单所属的所有订单商品一起选择的订单。例如:/ orders / 8应该只显示#8的顺序。当我转到此链接时,我当前的代码会显示所有订单。我很确定我需要在控制器的show部分用其他东西替换.all但我似乎无法弄清楚它可能是什么?
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
提前感谢您的帮助!
答案 0 :(得分:1)
def show
@order = Order.find(params[:id])
end
也会在show page中将@orders更改为@order。
答案 1 :(得分: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| %>