首页 > 解决方案 > 汤姆如何在视图中正确显示许多表记录

问题描述

这里有三个具有关联和关系的表,如下所示

类别表是主表

产品表属于类别表,其 product_id 引用 categor(id)

Sale表属于 Product 表,其 sale_id 引用 product(id)

我正在尝试根据他们的参考来获取记录,其中:

只需将这三个表视为 Categor 为主表,product 为子表,sales 为 product 下的子表

1.) 分类表将循环显示其中的所有记录。

2.) 产品表应循环并根据 categor_id 显示其记录,其中它与类别表的 id 匹配。

3) 销售表应该循环并根据 product_id 显示它的记录,它与产品的 id 匹配。

只需将这三个表视为发布、评论和回复

def index


    #@categors = Categor.where(:id => '1')
    @categors = Categor.all 
    @prods = Product.where(:categor_id => '1')
    @sals = Sale.where(:product_id => '1')

end

此时,我可以成功显示所有记录,但无法正确对齐。

类别是主表。产品信息应在类别下。销售信息应该在产品下。

只需将其分别视为帖子,评论和回复。

<p id="notice"><%= notice %></p>
  <div>
    <% @categors.each do |categor| %>

        Categorid: <%= categor.id %>
        Category Name: <%= categor.cat_name %>
        Ctaegory Label<%= categor.car_label %>
              </div>
    <% end %><br>



 <% @prods.each do |pr| %>

       Product id: <%= pr.id %>
        Product Name: <%= pr.prod_name %>
    <% end %>
<br>



 <% @sals.each do |s| %>
        sales id: <%= s.id %>
        sales Name: <%= s.sales_name %>
    <% end %>
<br>





<br>

标签: ruby-on-rails

解决方案


我不确定我是否理解您在这里要完成的工作,但我假设您正在尝试显示所有类别、每个类别中的所有产品以及每个产品的所有销售额。

您可以通过几种不同的方式来构建它,例如树视图或嵌套表等,并且您应该考虑一旦您有很多类别/产品/销售页面的可用性,但为了为简单起见,让我们将它们构建为嵌套列表:

<ul>
<% @categors.each do |categor| %>

  <li><%= categor.cat_name %>

    <ul>
    <% categor.products.each do |pr| %>

      <li><%= pr.prod_name %>

        <ul>
        <% pr.sales.each do |s| %>

          <li><%= s.sales_name %></li>

        <% end %>
        </ul>

      </li>

    <% end %>
    </ul>

  </li>

<% end %>
</ul>

现在您没有向我们展示您的模型是如何设置的,所以我不知道它们之间的关系是否设置正确,但我假设是的。


推荐阅读