亲子表格

时间:2013-08-07 18:58:09

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

如何在Rails中的单个页面上显示父子关系?我不需要表单,因为我只想显示信息(不需要编辑或更新)。父母是顾客,孩子是订单。我希望能够选择一个客户,显示一些客户信息,例如地址,并列出以行格式排列的所有订单。感谢。

2 个答案:

答案 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变量。