質問編集履歴
3
code追加attendances_controller.rb
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】コード追加
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
画像の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
-
|
2
|
+

|
3
|
+

|
4
|
+

|
3
5
|
【実現したいこと】
|
4
6
|
・usersテーブルとattendancesテーブルより各取り出したいデータを取得。
|
5
|
-
・出勤中のユーザーのみ表示。
|
7
|
+
・出勤中のユーザー(ここではSample User)のみ表示。
|
6
8
|
【試したこと】
|
7
9
|
```ruby
|
8
10
|
Attendance.where.not(started_at: nil)
|