teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

code追加attendances_controller.rb

2019/11/28 02:41

投稿

koh-s
koh-s

スコア9

title CHANGED
File without changes
body CHANGED
@@ -191,6 +191,28 @@
191
191
  end
192
192
 
193
193
  ```
194
+ 【attendances_controller.rb】
195
+ ```ruby
196
+ UPDATE_ERROR_MSG = "勤怠登録に失敗しました。やり直してください。"
197
+
198
+ def update
199
+ @attendance = Attendance.find(params[:id])
200
+ if @attendance.started_at.nil?
201
+ if @attendance.update_attributes(started_at: Time.current.change(sec: 0))
202
+ flash[:info] = "おはようございます!"
203
+ else
204
+ flash[:danger] = UPDATE_ERROR_MSG
205
+ end
206
+ elsif @attendance.finished_at.nil?
207
+ if @attendance.update_attributes(finished_at: Time.current.change(sec: 0))
208
+ flash[:info] = "お疲れ様でした!"
209
+ else
210
+ flash[:danger] = UPDATE_ERROR_MSG
211
+ end
212
+ end
213
+ redirect_to @user
214
+ end
215
+ ```
194
216
  ### 試したこと
195
217
 
196
218
  if文の条件分岐を潜っても全ユーザーが取得できてしまうことは何となくわかりますが、これをそれぞれに紐づける術がわからずギブアップになります。

2

【schema.rb】コード追加

2019/11/28 02:41

投稿

koh-s
koh-s

スコア9

title CHANGED
File without changes
body CHANGED
@@ -152,7 +152,44 @@
152
152
  "designated_work_start_time", "designated_work_end_time", "superior", "admin", "password"]
153
153
  end
154
154
  end
155
+ ```
156
+ 【schema.rb】
157
+ ```ruby
158
+ ActiveRecord::Schema.define(version: 20191118081810) do
155
159
 
160
+ create_table "attendances", force: :cascade do |t|
161
+ t.date "worked_on"
162
+ t.datetime "started_at"
163
+ t.datetime "finished_at"
164
+ t.string "note"
165
+ t.integer "user_id"
166
+ t.datetime "created_at", null: false
167
+ t.datetime "updated_at", null: false
168
+ t.index ["user_id"], name: "index_attendances_on_user_id"
169
+ end
170
+
171
+ create_table "users", force: :cascade do |t|
172
+ t.string "name"
173
+ t.string "email"
174
+ t.datetime "created_at", null: false
175
+ t.datetime "updated_at", null: false
176
+ t.string "password_digest"
177
+ t.string "remember_digest"
178
+ t.boolean "admin", default: false
179
+ t.string "affiliation"
180
+ t.datetime "basic_time", default: "2019-11-24 23:00:00"
181
+ t.datetime "work_time", default: "2019-11-24 22:30:00"
182
+ t.boolean "superior", default: false
183
+ t.integer "employee_number"
184
+ t.string "uid"
185
+ t.datetime "designated_work_start_time", default: "2019-11-25 00:00:00"
186
+ t.datetime "designated_work_end_time", default: "2019-11-25 09:00:00"
187
+ t.datetime "basic_work_time", default: "2019-11-24 23:00:00"
188
+ t.index ["email"], name: "index_users_on_email", unique: true
189
+ end
190
+
191
+ end
192
+
156
193
  ```
157
194
  ### 試したこと
158
195
 

1

画像の追加

2019/11/27 17:17

投稿

koh-s
koh-s

スコア9

title CHANGED
File without changes
body CHANGED
@@ -1,8 +1,10 @@
1
1
  ### 前提・実現したいこと
2
-
2
+ ![イメージ説明](8b9413a50b97b5b36e7c1096136c95cc.png)
3
+ ![イメージ説明](9602b5ec5a6ca06cb0b26d048d64f202.png)
4
+ ![イメージ説明](0a6b916ed9e3d40fa147e72e7418eae0.png)
3
5
  【実現したいこと】
4
6
  ・usersテーブルとattendancesテーブルより各取り出したいデータを取得。
5
- ・出勤中のユーザーのみ表示。
7
+ ・出勤中のユーザー(ここではSample User)のみ表示。
6
8
  【試したこと】
7
9
  ```ruby
8
10
  Attendance.where.not(started_at: nil)