Ruby on rails 在一个关系中迭代有很多贯穿关系

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

在我的应用程序中,我有一个文档,它通过Companydocs记录了许多公司。反之亦然,有一家公司通过公司法拥有许多文件。这一切都很好。现在我有了一个文档索引视图,其中显示了所有文档以及每个公司的一列,如果该文档适用于该公司,则该列的值为true或false

我可以获得所有document.company\u ID,但我不会得到虚假的公司,只有真实的公司,因此我应该首先遍历所有公司:

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