Html表没有填充/渲染

时间:2016-06-17 15:05:39

标签: ruby-on-rails

我是ruby on rails的新手,我正在创建我的第一个ruby on rails项目。我创建了一个带有嵌入式红宝石代码的html视图,它将显示一个包含以下标题的表格:Patient,Room / Bed,Covering OT / PT。在这些标题下,将显示患者姓名,相应的房间/床和OT / PT。但是当代码运行时,它不会呈现患者姓名,房间/床和覆盖OT / PT。表格标题显示但不是患者姓名,房间/床和覆盖OT / PT。此ruby块中的任何代码<%@ units.each do | un | %GT; ...<%end%>即使我输入像<%= Mr. Jones%>这样的红宝石代码,显然也没有执行。我不知道该怎么做。非常感谢任何帮助和建议。这是html代码:

 <!DOCTYPE html>
   <html>
     <head>
       <meta charset="utf-8">
       <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
       <title>Project</title>
       <meta name="description" content="Project1">
       <meta name="viewport" content="width=device-width, initial-scale=1.0">
       <!-- <link rel="shortcut icon" href="/favicon.ico"> -->
       <meta name="author" content="David West">
       <link rel="icon" type="img/ico" href="/assets/images/jhu_tic.ico">
       <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400">
       <link rel="stylesheet" href="/css/enterprise-auth.min.css">

  <div class="bar-header">
    <div class=label>
      <div class=app-label>Project | </div>
      <div class=view-label>Therapist</div>
    </div>
    <div class="date">Today is <%= Time.now.to_date %></div>
  </div>
</div>
<div class="main-page">
<% @units.each do |un| %>


    <div class="patient-queue-wrapper">
      <div class="queue-header">Daily Tx and other patients with OT/PT lag 2+ days</div>
      <table class="mdl-data-table mdl-js-data-table mdl-shadow--2dp fixed-table-header">
        <thead>
          <tr>
            <th class="mdl-data-table__cell--non-numeric">Patient Name</th>
            <th class="mdl-data-table__cell--non-numeric">Room/Bed</th>
            <th>OT/PT Lag</th>
            <th>OT/PT AMPAC</th>
            <th class="mdl-data-table__cell--non-numeric">Covering OT/PT</th>
          </tr>
        </thead>
        <tbody class="table-body scrollable-body">
          <% un.patients.each do |patient| %>

            <% if patient.lag_time_approaching_thresh %>

              <tr>
                <td class="mdl-data-table__cell--non-numeric"><%= patient.name %></td>
                <td class="mdl-data-table__cell--non-numeric"><%= patient.room_bed %></td>

              </tr>
            <% end %>
          <% end %>
        </tbody>
      </table>
     </div>
    <%end%>
   </div>
  </head>
 </html>

以下是显示DashboardsController中的@unit变量的代码:

   class DashboardsController < ApplicationController
       def therapist
       @patients = Patient.all.includes(:pt_priority, :ot_priority, orders: [visi$]
       @units = Unit.all
   end

   def therapist_all_units
       @units = Unit.all
   end

   def therapist_unit
       @unit = Unit.find(params[:id])
       # use the link-to helper methods
   end

   def manager
   end

1 个答案:

答案 0 :(得分:1)

如果un.patients返回空,tbody块内的代码将不会执行?或者没有 这就是为什么你放在那个区块内的任何东西都会显示

如果在该块中放置一个简单的html标记,它将不会出现,例如。

<tbody class="table-body scrollable-body">
  <% un.patients.each do |patient| %>
    <h1> If un.patients is then nothing in here will display </h1>
    <% if patient.lag_time_approaching_thresh %>

      <tr>
        <td class="mdl-data-table__cell--non-numeric"><%= patient.name %></td>
        <td class="mdl-data-table__cell--non-numeric"><%= patient.room_bed %></td>

      </tr>
    <% end %>
  <% end %>
</tbody>

这是因为un.patients中没有数据。 那么,为什么没有数据是一个完全不同的问题。 从应用程序根文件夹中的命令行检查控制台中的关联。

$ rails c

您可以使用控制台与模型进行交互,以查询数据和模型结构

e.g。

Patient.first.unit

您可能会发现,当您期望某个单位返回

时,上述内容会返回nil

我建议您仔细查看您的数据,特别是单位与患者之间的关系,您可能会发现表单没有问题

您还可以在html表单中为此条件添加一个检查

<% if un.patients.empty? %>
  <h2> Sorry, there are no patients for this unit </h2>
<%else%>
<tbody class="table-body scrollable-body">
  <% un.patients.each do |patient| %>
    <% if patient.lag_time_approaching_thresh %>

      <tr>
        <td class="mdl-data-table__cell--non-numeric"><%= patient.name %></td>
        <td class="mdl-data-table__cell--non-numeric"><%= patient.room_bed %></td>

      </tr>
    <% end %>
  <% end %>
</tbody>
<%end%>

您可能希望整理代码缩进以使其更具可读性