在rails视图中的ruby中生成基于列的表

soc*_*ata 4 ruby-on-rails

我需要一些动态生成基于列的表而不是基于行的表的帮助.

假设我有医院,医院有很多病人.

医院没有

          | Day 1 | Day 2 | Day 3     
Patient 1 | 36.6  | 36.4  | 36.5      
Patient 2 | 37.0  | 37.1  | 36.6      
Patient 3 | 37.1  | 36.4  | 36.7      
Patient 4 | 36.6  | 36.6  | 36.6      
Patient 5 | 36.7  | 37.1  | 36.4  
Run Code Online (Sandbox Code Playgroud)

每天,每位患者都要检查体温.我想获得动态绘制此类表格的提示/提示或示例 - 垂直添加新数据,而不是水平添加.希望你明白我的意思.

先感谢您 :)

jig*_*fox 5

我假设你的意思是这样的:

你有三个型号:

class Hostpital < ActiveRecord::Base
  has_many :patients
  has_many :temp_readings, :through => :patients
end

class Patient < ActiveRecord::Base
  belongs_to :hospital
  has_many :temp_readings
end

class TempReading < ActiveRecord::Base
  belongs_to :patient
end
Run Code Online (Sandbox Code Playgroud)

你可以在erb视图中构建一个表,如下所示:

<table>
  <thead>
    <tr>
      <th>&nbsp;</th>
      <%- some_hospital.temp_readings.map(&:date_of_reading).sort do |date_of_reading| -%>
        <th><%= date_of_reading %></th>
      <%- end -%>
    </tr>
  </thead>
  <tbody>
    <%- some_hospital.patients.each do |patient| -%>
      <tr>
        <th><%= patient.name %></th>
        <%- patient.hospital.temp_readings.map(&:date_of_reading).sort do |date_of_reading| -%>
          <td><%= patient.temp_reading.find_by_date_of_reading(date_of_reading) %></td>
        <%- end -%>
      </tr>
    <%- end -%>
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

我假设你的阅读模型中有一些日期列,我只是叫它 date_of_reading