質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

1回答

993閲覧

Railsでtableタグを使用し、取得したデータを表に時系列で表示させたい。

Misa0

総合スコア2

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/09/10 03:31

現在オリジナルアプリでカルテアプリを作っています。患者さんの観察項目を入力した後にshowページで表形式で横に時系列でデータを表示させたいと思っています。
コントローラにデータにorderメソッドを使用すると”no method error”が出ることや、orderメソッドを外して行うと、ビューではeach文を使用し記述するのですが、syntaxerrorが出る事などが続いています。

rails6.0.0を使用しています。

初心者です。宜しくお願いいたします。

||列1|列2|列3|
|:--|:--:|--:|
|時間|10:00|11:00|12:00|
|体温|36.5|37.1|37.3|
|脈拍|66|67|71|

一番上の列1,2,3は本来は無しです。

ruby

1Rails.application.routes.draw do 2 devise_for :users 3 get 'patients/index' 4 root to: "patients#index" 5 resources :users, only: [:edit, :update] 6 resources :patients, only: [:new, :create, :index, :show, :edit, :update] do 7 resources :observations, only: [:new, :create, :edit, :show, :update] 8 end 9end

ruby

1class ObservationsController < ApplicationController 2 before_action :set_patient, only: [:new, :create, :edit, :update, :show] 3 before_action :set_observation, only: [:edit, :update, :show] 4 5 def new 6 @observation = Observation.new 7 end 8 9 def create 10 @observation = Observation.new(observation_params) 11 if @observation.save # バリデーションをクリアした時 12 redirect_to patient_path(@patient) 13 else 14 render :new # バリデーションに弾かれた時 15 end 16 end 17 18 def show 19 @observation = Observation.find_by(patient_id: params[:patient_id]).order("time") 20 end 21 22 def update 23 if @observation.update(observation_params) # バリデーションをクリアした時 24 redirect_to patient_observation_path(@observation) 25 else 26 render :edit # バリデーションに弾かれた時 27 end 28 end 29 30 private 31 32 def observation_params 33 params.require(:observation).permit(:temperature, :pulse, :respiration, :high_blood_pressure, :low_blood_pressure, :spo2, :food_intake, 34 :water_intake, :excresion, :ex_amount, :atten_sound, :atten_part, :sputum, :cough, :sleep, :time, :hainyou).merge(user_id: current_user.id, patient_id: params[:patient_id], user_name: current_user.name) 35 end 36 37 def set_patient 38 @patient = Patient.find(params[:patient_id]) 39 end 40 41 def set_observation 42 @observation = Observation.find(params[:patient_id]) 43 end 44end 45

ruby

1<div class="item-show"> 2 <div class="item-box"> 3 <table class="detail-table"> 4 <tbody> 5 <% @patient,@observation.each do |observation| %> 6 <tr> 7 <th>観察時間</th> 8 <td><%= observation.time %></td> 9 </tr> 10 <tr> 11 <th>体温</th> 12 <td><%= observation.temperature %></td> 13 </tr> 14 <tr> 15 <th>脈拍数</th> 16 <td><%= observation.pulse %></td> 17 </tr> 18 <tr> 19 <th>呼吸数/分</th> 20 <td><%= observation.respiration %></td> 21 </tr> 22 <tr> 23 <th>最高血圧</th> 24 <td><%= observation.high_blood_pressure %></td> 25 </tr> 26 <tr> 27 <th>最低血圧</th> 28 <td><%= observation.low_blood_pressure %></td> 29 </tr> 30 <tr> 31 <th>SPO2</th> 32 <td><%= observation.spo2 %></td> 33 </tr> 34 <tr> 35 <th>食事摂取量</th> 36 <td><%= observation.food_intake %></td> 37 </tr> 38 <tr> 39 <th>水分摂取量</th> 40 <td><%= observation.water_intake %></td> 41 </tr> 42 <tr> 43 <th>便の性状</th> 44 <td><%= observation.excresion %></td> 45 </tr> 46 <tr> 47 <th>便の量</th> 48 <td><%= observation.ex_amount %></td> 49 </tr> 50 <tr> 51 <th>排尿状況</th> 52 <td><%= observation.hainyou %></td> 53 </tr> 54 <tr> 55 <th>呼吸の副雑音</th> 56 <td><%= observation.atten_sound %></td> 57 </tr> 58 <tr> 59 <th>副雑音の部位</th> 60 <td><%= observation.atten_part %></td> 61 </tr> 62 <tr> 63 <th>痰の性状</th> 64 <td><%= observation.sputum %></td> 65 </tr> 66 <tr> 67 <th>咳の性状</th> 68 <td><%= observation.cough %></td> 69 </tr> 70 <tr> 71 <th>睡眠状況</th> 72 <td><%= observation.sleep %></td> 73 </tr> 74 <tr> 75 <th>記録者名</th> 76 <td><%= observation.user_name %></td> 77 </tr> 78 <% end %> 79 </tbody> 80 </table> 81 <div class="option"> 82 <div class="favorite-btn"> 83 <%= image_tag "くま看護師.png" ,class:"favorite-star-icon" ,width:"40",height:"40"%> 84 <%= link_to "観察項目編集", edit_patient_observation_path %> 85 </div> 86 <div class="report-btn"> 87 <%= image_tag "レントゲン1.jpg" ,class:"report-flag-icon" ,width:"40",height:"40"%> 88 <%= link_to "検査結果参照", '#' %> 89 </div> 90 <div class="treatment-btn"> 91 <%= image_tag "点滴.jpeg" ,class:"treatment-icon" ,width:"40",height:"40"%> 92 <%= link_to "処置の入力", '#' %> 93 </div> 94 </div> 95 </div> 96</div>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

@observation = Observation.find_by(patient_id: params[:patient_id]).order(time: "DESC")
とか、time: ASCとかで期待した動作になるのではないでしょうか?

https://qiita.com/tsuchinoko_run/items/c31ed7e0b0672e6d898a


(Showアクションに一覧を表示していたり、ファイル名に日本語を使っていたりと色々と違和感がありますが・・・)

投稿2020/09/10 06:07

no1knows

総合スコア3365

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問