現在作業時間を記録する機能を作っています。
テーブルは
#Userテーブル ・id ・username
#WorkingHourテーブル ・user_id ・start_time ・finish_time
を持っていて
UserテーブルのidとWorkingHourテーブルのuser_idは紐づいています。
管理者のviewで全ユーザーの作業時間を表示するために、テーブルの数に応じて増えていく表を作ってるんですが、
id | 名前 | 作業時間 |
---|---|---|
1 | ユーザー1 | 8/11 11:00〜12:00 |
8/11 14:00〜18:00 | ||
2 | ユーザー2 | 8/11 11:00〜12:00 |
3 | ユーザー3 | 8/11 11:00〜12:00 |
8/13 10:00〜12:00 |
みたいなイメージです。
このときのviewでのデータの取り出し方がわからずに苦戦しています。
まずコントローラー側では
@working_hours = WorkingHour.all @users = User.all
このように全て取り出していて
View側では
%table %thead %tr %th ID %th 名前 %th 作業時間 %tr %thead %tbody - @working_hours.each do |working_hour| - user = User.where(id:working_hour.user_id) #ここが合っているかわからない %tr %td= working_hour.user_id %td= %td= %tr %tbody %table
hamlを使っていますが、idをループで表示するところまで書いて手が止まってしまいました。
@working_hoursの1ループの中でUserテーブルのidとWorkingHourテーブルのuser_idが一致するレコードを取得して、そのusernameカラムの中身をtdに表示するにはどんな方法があるでしょうか。。。
ここが合っているかわからないと書いてあるところは、このままuser.usernameという取り出し方をするとエラーになってしまい、userとだけ書いて表示すると、ActiveRecord::Relationみたいなものが表示されます。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/26 04:28