###勤務実績表を作りたい
写真のような勤務実績表を作るためにプログラムを組んでいます.
日付、曜日、出社時間、退社時間、勤務時間を表に入れるには
配列を用意してeach文で1個ずつ取り出して<td><%= date %></td>
の様にしてループを回すものだと思っていますが、要素が例えば日付だけなら事足りますが、
他の要素も一緒にループにするにはやり方がわからず困り果て、今の所多分zipメソッドあたりを使うのではないかと思いネットの参考を例にコードを打ってみましたがなかなかうまく行かず表示したいデータが出ない事に困っています。どうかお力をお貸しください。よろしくお願いいたします。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
VIEW
ruby
1<div class="container"> 2 <h1><%= @year_name %>年<%= @month_name %>月の勤務表</h1> 3<table class="table"> 4 <thead> 5 <tr> 6 <th>日付</th> 7 <th>曜</th> 8 <th>出社時間</th> 9 <th>退社時間</th> 10 <th>勤務時間</th> 11 </tr> 12 </thead> 13 14 <%@date.zip(@youbi).each |date youbi| do %> 15 16 <tr> 17 <td><%= date %></td> 18 <td><%= youbi %></td> 19 <td></td> 20 <td></td> 21 <td></td> 22 </tr> 23<%end%> 24 25 </table> 26 27</div> 28end 29end
controller
ruby
1class TimeCardsController < ApplicationController 2 def index 3 require 'date' 4 5 day = Date.today 6 start_date = Date::new(day.year,day.month, 1) 7 end_date = start_date >> 1 8 end_date = end_date - 1 9 #今何月の取得 10 month_name = start_date.month 11 12 13 #今月の羅列 14 (Date.parse("#{start_date}")..Date.parse("#{end_date}")).each do |date| 15 youbi = %w(日 月 火 水 木 金 土)[date.wday] + '曜日' 16 17 @date = date.day 18 @youbi = youbi 19 20 end 21 end 22end 23 24
試したこと
日付表示だけできるようにしました
VIEW
ruby
1<div class="container"> 2 <h1><%= @year_name %>年<%= @month_name %>月の勤務表</h1> 3<table class="table"> 4 <thead> 5 <tr> 6 <th>日付</th> 7 <th>曜</th> 8 <th>出社時間</th> 9 <th>退社時間</th> 10 <th>勤務時間</th> 11 </tr> 12 </thead> 13 14 <%=(Date.parse("#{@start_date}")..Date.parse("#{@end_date}")).each do |date| %> 15 16 <tr> 17 <td><%=date %></td> 18 <td></td> 19 <td></td> 20 <td></td> 21 <td></td> 22 </tr> 23<%end%> 24 25 </table> 26 27</div> 28
controller
ruby
1class TimeCardsController < ApplicationController 2 def index 3 #月初と月末を求る 4 require 'date' 5 day = Date.today 6 start_date = Date::new(day.year,day.month, 1) 7 end_date = start_date >> 1 8 end_date = end_date - 1 9 10 #今何年の取得 11 year_name = start_date.year 12 @year_name = year_name 13 #今何月の取得 14 month_name = start_date.month 15 @month_name = month_name 16 17 #今月の羅列 18 (Date.parse("#{start_date}")..Date.parse("#{end_date}")).each do |date| 19 @date = date 20 @start_date = start_date 21 @end_date = end_date 22 end 23 end 24 25 def show 26 27 end 28 29 def create 30 31 end 32 33end 34 35
補足情報(FW/ツールのバージョンなど)
使っているツール
AWS cloud9
回答1件
あなたの回答
tips
プレビュー