質問編集履歴

10

修正

2020/09/02 10:34

投稿

White_fox
White_fox

スコア6

test CHANGED
File without changes
test CHANGED
@@ -442,11 +442,7 @@
442
442
 
443
443
  ```
444
444
 
445
- **```ここに言語を入力
445
+
446
-
447
- ボールドテキスト
448
-
449
- ```**
450
446
 
451
447
  **ログ**
452
448
 

9

説明の加筆

2020/09/02 10:33

投稿

White_fox
White_fox

スコア6

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- 解決したいこと:userモデルに紐づくstepモデルを一括保存をしたい
1
+ **解決したいこと:userモデルに紐づくstepモデルを一括保存をしたい**
2
2
 
3
3
 
4
4
 
@@ -16,17 +16,19 @@
16
16
 
17
17
 
18
18
 
19
- 問題が発生するまでの流れ・手順
19
+ **問題が発生するまでの流れ・手順**
20
20
 
21
21
  new.html.erbでフォームに入力して登録ボタンを押した時
22
22
 
23
+
24
+
23
25
  ![イメージ説明](e3cc2fc7acf1eccdb2dd008dc3539afe.png)
24
26
 
25
27
 
26
28
 
27
- ※追記(最新の情報に修正)
29
+ **※追記(最新の情報に修正)
28
-
30
+
29
- new.html.erb
31
+ app/views/steps/new.html.erb**
30
32
 
31
33
  ```
32
34
 
@@ -54,7 +56,7 @@
54
56
 
55
57
  ```
56
58
 
57
- user.rb
59
+ **app/models/user.rb**
58
60
 
59
61
  ```
60
62
 
@@ -102,7 +104,7 @@
102
104
 
103
105
 
104
106
 
105
- step.rb
107
+ **app/models/step.rb**
106
108
 
107
109
 
108
110
 
@@ -158,7 +160,7 @@
158
160
 
159
161
  ```
160
162
 
161
- steps_collection.rb
163
+ **app/models/steps_collection.rb**
162
164
 
163
165
  ```
164
166
 
@@ -260,7 +262,7 @@
260
262
 
261
263
 
262
264
 
263
- steps_controller.rb
265
+ **app/controllers/steps_controller.rb**
264
266
 
265
267
  ```ここに言語を入力
266
268
 
@@ -308,10 +310,148 @@
308
310
 
309
311
  ```
310
312
 
311
- ログ
313
+ **app/helpers/sessions_helpers.rb**
312
314
 
313
315
  ```ここに言語を入力
314
316
 
317
+ module SessionsHelper
318
+
319
+
320
+
321
+ # 渡されたユーザーでログインする
322
+
323
+ def log_in(user)
324
+
325
+ session[:user_id] = user.id
326
+
327
+ end
328
+
329
+
330
+
331
+ # ユーザーのセッションを永続的にする
332
+
333
+ def remember(user)
334
+
335
+ user.remember
336
+
337
+ cookies.permanent.signed[:user_id] = user.id
338
+
339
+ cookies.permanent[:remember_token] = user.remember_token
340
+
341
+ end
342
+
343
+
344
+
345
+ # 記憶トークンcookieに対応するユーザーを返す
346
+
347
+ def current_user
348
+
349
+ if (user_id = session[:user_id])
350
+
351
+ @current_user ||= User.find_by(id: user_id)
352
+
353
+ elsif (user_id = cookies.signed[:user_id])
354
+
355
+ user = User.find_by(id: user_id)
356
+
357
+ if user && user.authenticated?(cookies[:remember_token])
358
+
359
+ log_in user
360
+
361
+ @current_user = user
362
+
363
+ end
364
+
365
+ end
366
+
367
+ end
368
+
369
+
370
+
371
+ # 渡されたユーザーがログイン済みユーザーであればtrueを返す
372
+
373
+ def current_user?(user)
374
+
375
+ user == current_user
376
+
377
+ end
378
+
379
+
380
+
381
+ # ユーザーがログインしていればtrue、その他ならfalseを返す
382
+
383
+ def logged_in?
384
+
385
+ !current_user.nil?
386
+
387
+ end
388
+
389
+
390
+
391
+ # 永続的セッションを破棄する
392
+
393
+ def forget(user)
394
+
395
+ user.forget
396
+
397
+ cookies.delete(:user_id)
398
+
399
+ cookies.delete(:remember_token)
400
+
401
+ end
402
+
403
+
404
+
405
+ # 現在のユーザーをログアウトする
406
+
407
+ def log_out
408
+
409
+ forget(current_user)
410
+
411
+ session.delete(:user_id)
412
+
413
+ @current_user = nil
414
+
415
+ end
416
+
417
+
418
+
419
+ # 記憶したURL (もしくはデフォルト値) にリダイレクト(フレンドリーフォワーディング)
420
+
421
+ def redirect_back_or(default)
422
+
423
+ redirect_to(session[:forwarding_url] || default)
424
+
425
+ session.delete(:forwarding_url)
426
+
427
+ end
428
+
429
+
430
+
431
+ # アクセスしようとしたURLを覚えておく
432
+
433
+ def store_location
434
+
435
+ session[:forwarding_url] = request.original_url if request.get?
436
+
437
+ end
438
+
439
+
440
+
441
+ end
442
+
443
+ ```
444
+
445
+ **```ここに言語を入力
446
+
447
+ ボールドテキスト
448
+
449
+ ```**
450
+
451
+ **ログ**
452
+
453
+ ```ここに言語を入力
454
+
315
455
  Started POST "/steps" for 172.19.0.1 at 2020-09-01 13:31:37 +0000
316
456
 
317
457
  web_1 | Cannot render console from 172.19.0.1! Allowed networks: 172.18.0.1, 127.0.0.0/127.255.255.255, ::1
@@ -352,7 +492,7 @@
352
492
 
353
493
  ```
354
494
 
355
- 環境
495
+ **環境**
356
496
 
357
497
  ```ここに言語を入力
358
498
 

8

脱字の修正

2020/09/02 10:31

投稿

White_fox
White_fox

スコア6

test CHANGED
File without changes
test CHANGED
@@ -62,7 +62,9 @@
62
62
 
63
63
 
64
64
 
65
- #
65
+ #== Schema Information
66
+
67
+
66
68
 
67
69
  # id :bigint not null, primary key
68
70
 

7

インデント修正

2020/09/02 09:02

投稿

White_fox
White_fox

スコア6

test CHANGED
File without changes
test CHANGED
@@ -32,27 +32,25 @@
32
32
 
33
33
  <%= form_with model: @steps, url: steps_path, local: true do |form| %>
34
34
 
35
- <% @steps.collection.each do |step| %>
35
+ <% @steps.collection.each do |step| %>
36
-
36
+
37
- <%= fields_for 'steps[]', step do |field| %>
37
+ <%= fields_for 'steps[]', step do |field| %>
38
-
38
+
39
- <%= field.label :step_name %>
39
+ <%= field.label :step_name %>
40
-
40
+
41
- <%= field.text_field :step_name , class: 'form-field' %>
41
+ <%= field.text_field :step_name, class: 'form-field' %>
42
-
42
+
43
- <br>
43
+ <br>
44
-
45
- <% end %>
46
44
 
47
45
  <% end %>
48
46
 
49
- <%= form.submit %>
50
-
51
- <%= link_to '戻る', step_path(current_user) %>
52
-
53
47
  <% end %>
54
48
 
55
-
49
+ <%= form.submit %>
50
+
51
+ <%= link_to '戻る', step_path(current_user) %>
52
+
53
+ <% end %>
56
54
 
57
55
  ```
58
56
 

6

new.html.erbとsteps_collection.rbとsteps_controller.rbを指摘されたところの修正

2020/09/01 22:19

投稿

White_fox
White_fox

スコア6

test CHANGED
File without changes
test CHANGED
@@ -4,13 +4,7 @@
4
4
 
5
5
  Railsで一括保存する機能を開発しています。
6
6
 
7
- [モデルを一括登録する手順](https://qiita.com/Ryoga_aoym/items/91a3940cfa4de268fca4#%E3%83%A2%E3%83%87%E3%83%AB)を参考にしてやってみましたが次のエラーが表示されました。
7
+ [モデルを一括登録する手順](https://qiita.com/Ryoga_aoym/items/91a3940cfa4de268fca4#%E3%83%A2%E3%83%87%E3%83%AB)を参考にしてやってみましたが
8
-
9
-
10
-
11
- ![イメージ説明](e5179c20320fc0777a7de22426975985.png)
12
-
13
-
14
8
 
15
9
 
16
10
 
@@ -30,14 +24,12 @@
30
24
 
31
25
 
32
26
 
33
-
27
+ ※追記(最新の情報に修正)
34
28
 
35
29
  new.html.erb
36
30
 
37
31
  ```
38
32
 
39
-
40
-
41
33
  <%= form_with model: @steps, url: steps_path, local: true do |form| %>
42
34
 
43
35
  <% @steps.collection.each do |step| %>
@@ -60,8 +52,6 @@
60
52
 
61
53
  <% end %>
62
54
 
63
- </div>
64
-
65
55
 
66
56
 
67
57
  ```
@@ -186,7 +176,7 @@
186
176
 
187
177
  include ActiveModel::Validations
188
178
 
189
- STEP_NUM = 3 # 同時にstepを作成する数
179
+ STEP_NUM = 3 # 同時にstepを作成する数
190
180
 
191
181
  attr_accessor :collection
192
182
 
@@ -194,15 +184,19 @@
194
184
 
195
185
  # 初期化メソッド
196
186
 
197
- def initialize(attributes = [])
187
+ def initialize(current_user,attributes = [])
198
188
 
199
189
  if attributes.present?
200
190
 
201
191
  self.collection = attributes.map do |value|
202
192
 
193
+ # 修正
194
+
203
195
  Step.new(
204
196
 
197
+ user_id: value['current_user.id'],
198
+
205
- step_name: value['step_name'],
199
+ step_name: value['step_name']
206
200
 
207
201
  )
208
202
 
@@ -210,7 +204,7 @@
210
204
 
211
205
  else
212
206
 
213
- self.collection = STEP_NUM.times.map{ Step.new }
207
+ self.collection = STEP_NUM.times.map { Step.new }
214
208
 
215
209
  end
216
210
 
@@ -266,7 +260,7 @@
266
260
 
267
261
 
268
262
 
269
- steps_controller
263
+ steps_controller.rb
270
264
 
271
265
  ```ここに言語を入力
272
266
 
@@ -276,7 +270,7 @@
276
270
 
277
271
  def new
278
272
 
279
- @steps = StepCollection.new
273
+ @steps = StepCollection.new(current_user)
280
274
 
281
275
  end
282
276
 
@@ -284,7 +278,7 @@
284
278
 
285
279
  def create
286
280
 
287
- @steps = StepCollection.new(step_params)
281
+ @steps = StepCollection.new(current_user, step_params)
288
282
 
289
283
  if @steps.save
290
284
 
@@ -308,7 +302,7 @@
308
302
 
309
303
  def step_params
310
304
 
311
- params.require(:steps).permit(:step_name)
305
+ params.require(:steps)
312
306
 
313
307
  end
314
308
 
@@ -318,33 +312,39 @@
318
312
 
319
313
  ```ここに言語を入力
320
314
 
321
- web_1 | Started POST "/steps" for 172.24.0.1 at 2020-08-31 14:17:33 +0000
322
-
323
- web_1 | Cannot render console from 172.24.0.1! Allowed networks: 172.18.0.1, 127.0.0.0/127.255.255.255, ::1
324
-
325
- web_1 | (0.8ms) SET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483
326
-
327
- web_1 | Processing by StepsController#create as HTML
328
-
329
- web_1 | Parameters: {"utf8"=>"✓", "authenticity_token"=>"JshuOaBHrihQuBKZEQ7bvTGY/NgBB8tekeuRAe9nYBIdvIahrJmhUj2mVPnVuZKWelDB3QyX8kLMS2D8N36Npw==", "steps"=>[{"step_name"=>"step"}, {"step_name"=>"step2"}, {"step_name"=>"step3"}], "commit"=>"登録する"}
330
-
331
- web_1 | User Load (1.6ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 8 LIMIT 1
332
-
333
- web_1 | Completed 500 Internal Server Error in 129ms (ActiveRecord: 22.2ms)
334
-
335
- web_1 |
336
-
337
- web_1 |
338
-
339
- web_1 |
340
-
341
- web_1 | NoMethodError (undefined method `permit' for #<Array:0x00007fccd5a3d140>):
342
-
343
- web_1 |
344
-
345
- web_1 | app/controllers/steps_controller.rb:62:in `step_params'
346
-
347
- web_1 | app/controllers/steps_controller.rb:40:in `create'
315
+ Started POST "/steps" for 172.19.0.1 at 2020-09-01 13:31:37 +0000
316
+
317
+ web_1 | Cannot render console from 172.19.0.1! Allowed networks: 172.18.0.1, 127.0.0.0/127.255.255.255, ::1
318
+
319
+ web_1 | Processing by StepsController#create as HTML
320
+
321
+ web_1 | Parameters: {"utf8"=>"✓", "authenticity_token"=>"pZy8W+7yYOGz+BNc8CfWRJW+rBlkVX1ctV5OS7DWHFCe6FTD4ixvm97mVTw0kJ9v3naRHGnFREDo/r+2aM/x5Q==", "steps"=>[{"step_name"=>"step"}, {"step_name"=>"step1"}, {"step_name"=>"step2"}], "commit"=>"登録する"}
322
+
323
+ web_1 | User Load (0.3ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 8 LIMIT 1
324
+
325
+ web_1 | (0.3ms) BEGIN
326
+
327
+ web_1 | (0.3ms) ROLLBACK
328
+
329
+ web_1 | "エラー"
330
+
331
+ web_1 | Rendering steps/new.html.erb within layouts/application
332
+
333
+ web_1 | Rendered steps/_form.html.erb (2.3ms)
334
+
335
+ web_1 | Rendered steps/new.html.erb within layouts/application (14.7ms)
336
+
337
+ web_1 | Rendered layouts/_shim.html.erb (0.4ms)
338
+
339
+ web_1 | Rendered layouts/_head.html.erb (441.1ms)
340
+
341
+ web_1 | Rendered layouts/_header.html.erb (2.3ms)
342
+
343
+ web_1 | Rendered layouts/_flash_messages.html.erb (0.4ms)
344
+
345
+ web_1 | Rendered layouts/_footer.html.erb (2.0ms)
346
+
347
+ web_1 | Completed 200 OK in 644ms (Views: 563.5ms | ActiveRecord: 3.0ms)
348
348
 
349
349
 
350
350
 
@@ -354,6 +354,10 @@
354
354
 
355
355
  環境
356
356
 
357
+ ```ここに言語を入力
358
+
357
359
  rails: 5.2.3
358
360
 
359
361
  ruby: 2.5.7
362
+
363
+ ```

5

説明の加筆

2020/09/01 22:15

投稿

White_fox
White_fox

スコア6

test CHANGED
File without changes
test CHANGED
@@ -18,6 +18,8 @@
18
18
 
19
19
  色々試しましたがどうしても解決できませんでした。
20
20
 
21
+ 足りない情報があれば指摘していただけると助かりますm(_ _)m
22
+
21
23
 
22
24
 
23
25
  問題が発生するまでの流れ・手順

4

タグの追加

2020/08/31 14:57

投稿

White_fox
White_fox

スコア6

test CHANGED
File without changes
test CHANGED
File without changes

3

説明の加筆

2020/08/31 14:44

投稿

White_fox
White_fox

スコア6

test CHANGED
File without changes
test CHANGED
@@ -352,6 +352,6 @@
352
352
 
353
353
  環境
354
354
 
355
- rails 5.2.3
355
+ rails: 5.2.3
356
-
356
+
357
- ruby:2.5.7
357
+ ruby: 2.5.7

2

説明の加筆

2020/08/31 14:30

投稿

White_fox
White_fox

スコア6

test CHANGED
File without changes
test CHANGED
@@ -20,6 +20,14 @@
20
20
 
21
21
 
22
22
 
23
+ 問題が発生するまでの流れ・手順
24
+
25
+ new.html.erbでフォームに入力して登録ボタンを押した時
26
+
27
+ ![イメージ説明](e3cc2fc7acf1eccdb2dd008dc3539afe.png)
28
+
29
+
30
+
23
31
 
24
32
 
25
33
  new.html.erb

1

説明の加筆

2020/08/31 14:29

投稿

White_fox
White_fox

スコア6

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
 
4
4
 
5
+ Railsで一括保存する機能を開発しています。
6
+
5
- [モデルを一括登録する手順](https://qiita.com/Ryoga_aoym/items/91a3940cfa4de268fca4#%E3%83%A2%E3%83%87%E3%83%AB)を参考にしてやってみましたが次のエラーが表示されたのですが
7
+ [モデルを一括登録する手順](https://qiita.com/Ryoga_aoym/items/91a3940cfa4de268fca4#%E3%83%A2%E3%83%87%E3%83%AB)を参考にしてやってみましたが次のエラーが表示されまし
6
8
 
7
9
 
8
10