【问题标题】:How tom properly display many table records in views如何在视图中正确显示许多表记录
【发布时间】:2019-04-22 19:33:39
【问题描述】:

这里有三个表,关联关系如下

Categor表为主表

Product表属于categor表,其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

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

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

只需分别查看帖子、评论和回复即可。

<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


    【解决方案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>
    

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

    【讨论】:

    • 谢谢朱利安先生。您的解决方案完美运行。在我标记并支持您的惊人解决方案之前。我有个问题。从您的回答来看,这种嵌套方法似乎会在页面上出现更多内容时出现性能问题。请问facebook如何处理他们的帖子、cmets并在同一页面上加载更多内容按钮进行回复。 youtube 使用什么方法在同一页面上显示视频帖子,cmets,回复。我需要被引导。谢谢
    • 至于模型分类模型有这个类分类 :products end
    • 在产品模型中我有belong_to : categor 和在销售模型中我有belong_to: 产品
    • Facebook、Youtube等通过AJAX请求加载数据,你可以了解更多here
    • 非常感谢。你让我的一天更轻松
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    相关资源
    最近更新 更多