Ruby on rails 在一个关系中迭代有很多贯穿关系
在我的应用程序中,我有一个文档,它通过Companydocs记录了许多公司。反之亦然,有一家公司通过公司法拥有许多文件。这一切都很好。现在我有了一个文档索引视图,其中显示了所有文档以及每个公司的一列,如果该文档适用于该公司,则该列的值为true或false 我可以获得所有document.company\u ID,但我不会得到虚假的公司,只有真实的公司,因此我应该首先遍历所有公司:Ruby on rails 在一个关系中迭代有很多贯穿关系,ruby-on-rails,Ruby On Rails,在我的应用程序中,我有一个文档,它通过Companydocs记录了许多公司。反之亦然,有一家公司通过公司法拥有许多文件。这一切都很好。现在我有了一个文档索引视图,其中显示了所有文档以及每个公司的一列,如果该文档适用于该公司,则该列的值为true或false 我可以获得所有document.company\u ID,但我不会得到虚假的公司,只有真实的公司,因此我应该首先遍历所有公司: %table %tr %td Document %td Company A %td C
%table
%tr
%td Document
%td Company A
%td Company B
- @documents.each do |doc|
%tr
%td= doc.name
- Company.all.each do |company|
- if company has document for this company
"true"
- else
"false"
如果公司有此公司的文档,我应该如何编写伪代码?您可以使用如下方法:
if company.documents.include?(doc)
另外,我强烈建议在controller中预加载公司以及相关文档,这样可以避免多次SQL查询:
@companies = Company.includes(:documents)
鉴于:
- @companies.each do |company|