ruby-on-rails - 汤姆如何在视图中正确显示许多表记录
问题描述
这里有三个具有关联和关系的表,如下所示
类别表是主表
产品表属于类别表,其 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>
解决方案
我不确定我是否理解您在这里要完成的工作,但我假设您正在尝试显示所有类别、每个类别中的所有产品以及每个产品的所有销售额。
您可以通过几种不同的方式来构建它,例如树视图或嵌套表等,并且您应该考虑一旦您有很多类别/产品/销售页面的可用性,但为了为简单起见,让我们将它们构建为嵌套列表:
<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>
现在您没有向我们展示您的模型是如何设置的,所以我不知道它们之间的关系是否设置正确,但我假设是的。
推荐阅读
- sql-server - TSQL分组并从子查询中选择行数
- python - 如何在 python 3.5、3.6、3.7 上对 pathlib 进行猴子补丁,以获得与 python 3.8 中相同的功能?
- regex - 正则表达式排除第一次出现的下划线和最后一次出现的连字符之间的文本
- sql - 在子查询中制作数据透视表
- javascript - 如何使用 findOneAndUpdate 检查是否没有要更新的文档
- tarantool - tarantool 如何处理光纤外的 lua 错误
- visual-studio-code - 如何在具有不同当前目录的 VS Code 中为 Java 应用程序配置 launch.json
- raspberry-pi - 将 Retroflag GPi(Raspberry Pi 零 W)连接到 WPA2 Enterprise
- genetic-algorithm - 如何处理遗传算法中不可行的个体?
- html - 如何使html元素具有与表格相同的起始宽度