如何在Rails中的单个页面上显示父子关系?我不需要表单,因为我只想显示信息(不需要编辑或更新)。父母是顾客,孩子是订单。我希望能够选择一个客户,显示一些客户信息,例如地址,并列出以行格式排列的所有订单。感谢。
答案 0 :(得分:1)
目前还不完全清楚你想要什么。我假设你想要一个客户列表,当你点击其中一个时,其他页面正在填充其详细信息。如果是这样,最好的解决方案是使用Ajax事件,它将从服务器获取详细信息并将其放在给定的div中。 customers_controller中的操作就像:
def details
@customer = Customer.find(params[:id])
render 'details', :layout => false # remember to add view 'details'
# and appropriate route in routes.
end
和javascript(jQuery)(注意它不是完美的ajax调用,它不会处理多次点击和其他问题,但是应该让你开始)
$('.customer-row').click(function() {
customer_id = $(this).data('id');
$.ajax({
url: "/customers/" + customer_id + "/details",
type: "get",
success: function(details) {
$('#customer_details').html(details)
}
});
});
然后在您的基本视图中,您需要在某处拥有ID为“customer_details”的div,并且每个客户行应该看起来像class =“customer-row”>。
就如何在详细信息视图中访问子对象而言,它非常简单: <%@ customer.orders.each do | order |> # 显示顺序 <%end%>
答案 1 :(得分:0)
假设您已正确设置模型关联..
在控制器中,
@customer = Customer.find(params[:id])
@orders = @customer.orders.all
然后在视图中,使用orders变量。