如何在视图中正确显示许多表记录

时间:2019-04-22 19:33:39

标签: ruby-on-rails

这里有三个具有关联和关系的表,

类别表是主表

Product 表属于categor表,其product_id引用categor(id)

销售表属于产品表,其sale_id引用产品(id)

我正在尝试根据其引用获取记录,其中:

只需将这三个表作为主分类表,将产品作为子表,将销售额作为产品下的子表

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

2。)产品表应根据与分类表的ID相匹配的categor_id循环显示其记录。

3)销售表应根据与产品ID相匹配的product_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>

1 个答案:

答案 0 :(得分:1)

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

您可以采用几种不同的方式来构造此结构,例如树状视图或嵌套表等,并且当您拥有很多类别/产品/销售时,您应该考虑页面的可用性。为了简单起见,让我们将它们构造为嵌套列表:

<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>

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