2016-06-17 9 views
1

私はRuby on Railsで新しく、私は最初のruby on railプロジェクトを作成しています。私は、患者、部屋/ベッド、カバーOT/PTの表を表示する埋め込まれたルビーコードを持つHTMLビューを作成しました。これらの見出しの下に、患者名、対応する部屋/ベッド、およびOT/PTが表示されます。しかし、コードが実行されると、患者名、部屋/ベッド、およびOT/PTをカバーしません。テーブル見出しは患者名、部屋/ベッド、およびOT/PTを表示するがレンダリングはしない。このRubyブロック内のコード<%@ units.each do | un | %> ... <%= Mr. Jones%>のようなルビコードを入れても、明らかに#<%end%>は実行されません。私は何をすべきか分かりません。どんな助けや助言も大歓迎です。ここでのHTMLコードは、次のとおり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 
+0

'@units'には何が入っていますか?その変数を(コントローラー内で)設定しているコードを投稿し、ビューが表示されている場合は<%= @ units.inspect%>を入れてページをリロードし、結果を投稿します。 – RichardAE

+0

@jameswが示唆しているように、xxxx.html.erb – Maxence

+0

のようなビューファイルの名前も確認できますか?Unitテーブルにレコードが設定されていることを確認できますか? – Maxence

答えて

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.patientにデータがないためです。 それでは、データがない理由はまったく異なる質問です。 コンソールの実行時に、アプリケーションのルートフォルダ内のコマンドラインから関連付けを確認します。あなたのデータとモデルの構造を調べるために、あなたのモデルと対話するためにコンソールを使用することができます$ rails c

例えば

Patient.first.unit 
あなたは私はあなたがあなたのデータで、特に非常に密接に見てください

を返すためにユニットを期待しているときに、上記はnilを返すことがあり

ユニットと患者とあなたはおそらく見つけるの関係

フォームと間違って何もないことをあなたはまた、あなたが望むかもしれない

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

この条件のためにhtmlフォームのチェックを追加することができますコードのインデントを並べ替えて読みやすくする

関連する問題