通过第三表关联查找关联记录

时间:2018-04-17 21:40:14

标签: ruby-on-rails activerecord associations

我正在使用3个模型,并尝试在两个不相关的模型之间找到最常用的项目,但是有第三个表格。

我的3个型号是: 访问(has_many诊断) 诊断(belongs_to访问) 处方(belongs_to访问)

鉴于具体的诊断,我想知道最常用的药物是什么。由于诊断和处方没有直接的关系,我迷失了。以下是我目前的代码

这得到我的最高诊断

@top_diag = Diagnosiswork.group("diagnosis").order("count_diagnosis_id desc").limit(10).count("diagnosis_id")

这是我认为的

      <tbody>
        <% @top_diag.each do |diagnosis, count| %>
            <% top_visits = Diagnosiswork.where(diagnosis_id: diagnosis.id) %>
            <% top_prescription = Prescription.where(visit_id: @top_visits) %>
      <tr>
        <td><%= count %>: <%= diagnosis.id %></td><td><strong><%= diagnosis.name %></strong></td>
        <td>
         <% top_prescription.each do |prescription| %>
            <%= prescription.medicine.full_name %>
         <% end %>
        </td>
        <td><span class="badge badge-success">Active</span></td>
        <td>
        </td>
      </tr>
      <% end %>
      </tbody>

这给我一份药物清单,但每个诊断都是相同的清单。我目前的想法是获取最常使用这些诊断的访问,然后使用类似于我的top_diag的查询,该查询使用where子句挑出某些访问。

提前非常感谢!

0 个答案:

没有答案