RailsでDateTimeを使ってボタンで作業時間を記録するアプリを作ろうとしているのですが、
・作業時間テーブル(WorkingHourテーブル)はUserテーブルと紐づいている
・作業開始ボタンでTime.currentを記録
・作業終了ボタンでTime.currentを記録
・それがuserの名前と一緒にviewに表示される
・開始時間も終了時間も上書きされずに追加されていく
例)
ヤマダタロウ
8/10 10:00〜15:00
8/11 10:00〜14:00
8/13 11:00〜12:30
ヤマモトタロウ
8/10 10:00〜19:00
8/12 11:00〜14:00
恥ずかしながらWorkingHourモデルを作成し、以下のコードを書いた段階で思考が停止してしまいました....
class ApplicationController < ActionController::Base protect_from_forgery with: :exception def register_work_starting_time @starting_time = WorkingHour.create(user_id: @user.id, starting_time: Time.current) end def register_work_finished_time @finished_time = WorkingHour.create(user_id: @user.id, finished_time: Time.current) end
どなたか力を貸していただけると助かります。
「この根本を理解してないよー」とか「ヒントはこれ」とか、直接的な回答でなくても大歓迎なので、よろしくお願いいたします。
以下補足--------
・WorkingHourに記録するのはuser_nameではなくuser_idで、user_nameはuser_idから引っ張ってくるべきです(名前が変わった時に記録時の名前が欲しい、とかいう要件でなければ)
→たしかにそうですね。変えました。
・作業開始、作業終了が複数回連続で押される可能性があるのかどうか、可能性がある場合にどうするかが問題になりそうです。
要はボタンの押し忘れの対処方法とかです。
→説明が不足しておりましたが、これは単に時間を記録するアプリではなく、他にもいろいろ要件があるんですが、そのためにマイページをつくり、開始、終了ともに押したら時間記録と一緒にマイページへの遷移を考えました。ひとまず押し忘れと連続押しは回避できるかなと思います。
・どういう風に表示するかのロジックも重要です。例えば日付で区切る、といった場合、作業が日をまたいだ時にどうするのかが悩ましいです
→日付をまたぐことはとりあえず想定せず!
以下補足2--------
漠然と実装したい機能が書いてあるだけで、どこがわかってないのか、どこの部分を教えてほしいかが明確でないと思います。
失礼しました。
まずわからないのは、viewのボタン部分は<%= button_to "ボタン", {コントローラー名など} %>
でやろうとしていて、表示の際は名前をuser_idからfind_byで引っ張って来て表示とします。その場合、僕のcontrollerのコードで足りない部分がわからないというのとviewのやり方が適切かどうかがわからず質問させていただきました。
回答2件
あなたの回答
tips
プレビュー