質問編集履歴

9

posts_controller.rbの中身を記載しました。

2019/07/01 03:38

投稿

oku-haru
oku-haru

スコア10

test CHANGED
File without changes
test CHANGED
@@ -578,7 +578,137 @@
578
578
 
579
579
  ```
580
580
 
581
-
581
+ posts_controller.rb
582
+
583
+ ```
584
+
585
+ class PostsController < ApplicationController
586
+
587
+ before_action :authenticate_user
588
+
589
+ before_action :ensure_correct_user, {only: [:edit, :update, :destroy]}
590
+
591
+
592
+
593
+ def index
594
+
595
+ @posts = Post.all.order(created_at: :desc)
596
+
597
+ end
598
+
599
+
600
+
601
+ def show
602
+
603
+ @post = Post.find_by(id: params[:id])
604
+
605
+ @user = @post.user
606
+
607
+ @likes_count = Like.where(post_id: @post.id).count
608
+
609
+ end
610
+
611
+
612
+
613
+ def new
614
+
615
+ @post = Post.new
616
+
617
+ end
618
+
619
+
620
+
621
+ def create
622
+
623
+ @post = Post.new(
624
+
625
+ content: params[:content],
626
+
627
+ user_id: @current_user.id
628
+
629
+ )
630
+
631
+ if @post.save
632
+
633
+ flash[:notice] = "投稿を作成しました"
634
+
635
+ redirect_to("/posts/index")
636
+
637
+ else
638
+
639
+ render("posts/new")
640
+
641
+ end
642
+
643
+ end
644
+
645
+
646
+
647
+ def edit
648
+
649
+ @post = Post.find_by(id: params[:id])
650
+
651
+ end
652
+
653
+
654
+
655
+ def update
656
+
657
+ @post = Post.find_by(id: params[:id])
658
+
659
+ @post.content = params[:content]
660
+
661
+ if @post.save
662
+
663
+ flash[:notice] = "投稿を編集しました"
664
+
665
+ redirect_to("/posts/index")
666
+
667
+ else
668
+
669
+ render("posts/edit")
670
+
671
+ end
672
+
673
+ end
674
+
675
+
676
+
677
+ def destroy
678
+
679
+ @post = Post.find_by(id: params[:id])
680
+
681
+ @post.destroy
682
+
683
+ flash[:notice] = "投稿を削除しました"
684
+
685
+ redirect_to("/posts/index")
686
+
687
+ end
688
+
689
+
690
+
691
+ def ensure_correct_user
692
+
693
+ @post = Post.find_by(id: params[:id])
694
+
695
+ if @post.user_id != @current_user.id
696
+
697
+ flash[:notice] = "権限がありません"
698
+
699
+ redirect_to("/posts/index")
700
+
701
+ end
702
+
703
+ end
704
+
705
+
706
+
707
+ end
708
+
709
+
710
+
711
+ ```
582
712
 
583
713
 
584
714
 

8

ログイン時のログを記入

2019/07/01 03:38

投稿

oku-haru
oku-haru

スコア10

test CHANGED
File without changes
test CHANGED
@@ -520,6 +520,70 @@
520
520
 
521
521
 
522
522
 
523
+ ログイン時のlogを貼ってみました。
524
+
525
+
526
+
527
+ ```
528
+
529
+ Started POST "/login" for ::1 at 2019-07-01 08:07:10 +0900
530
+
531
+ Processing by UsersController#login as HTML
532
+
533
+ Parameters: {"utf8"=>"✓", "authenticity_token"=>"2XerjpX7waxUGUlglL3DAa6aqksVlJ/A4HUelqF9833/UqIjdWSSg1x6LkCXGfQzII7nDLRnLQXdWwQQfXcXIQ==", "email"=>"test-user.@gmail.com", "password"=>"[FILTERED]"}
534
+
535
+ User Load (11.3ms) SELECT `users`.* FROM `users` WHERE `users`.`id` IS NULL LIMIT 1
536
+
537
+ User Load (29.7ms) SELECT `users`.* FROM `users` WHERE `users`.`email` = 'test-user@gmail.com' LIMIT 1
538
+
539
+ Redirected to http://localhost:3000/posts/index?containerPort=3000&languageName=rails5&locale=ja
540
+
541
+ Completed 302 Found in 534ms (ActiveRecord: 41.0ms)
542
+
543
+
544
+
545
+
546
+
547
+ Started GET "/posts/index?containerPort=3000&languageName=rails5&locale=ja" for ::1 at 2019-07-01 08:07:10 +0900
548
+
549
+ Processing by PostsController#index as HTML
550
+
551
+ Parameters: {"containerPort"=>"3000", "languageName"=>"rails5", "locale"=>"ja"}
552
+
553
+ User Load (4.0ms) SELECT `users`.* FROM `users` WHERE `users`.`id` IS NULL LIMIT 1
554
+
555
+ Redirected to http://localhost:3000/login?containerPort=3000&languageName=rails5&locale=ja
556
+
557
+ Filter chain halted as :authenticate_user rendered or redirected
558
+
559
+ Completed 302 Found in 30ms (ActiveRecord: 4.0ms)
560
+
561
+
562
+
563
+
564
+
565
+ Started GET "/login?containerPort=3000&languageName=rails5&locale=ja" for ::1 at 2019-07-01 08:07:10 +0900
566
+
567
+ Processing by UsersController#login_form as HTML
568
+
569
+ Parameters: {"containerPort"=>"3000", "languageName"=>"rails5", "locale"=>"ja"}
570
+
571
+ User Load (0.9ms) SELECT `users`.* FROM `users` WHERE `users`.`id` IS NULL LIMIT 1
572
+
573
+ Rendering users/login_form.html.erb within layouts/application
574
+
575
+ Rendered users/login_form.html.erb within layouts/application (29.9ms)
576
+
577
+ Completed 200 OK in 386ms (Views: 363.3ms | ActiveRecord: 0.9ms)
578
+
579
+ ```
580
+
581
+
582
+
583
+
584
+
585
+
586
+
523
587
  ### 試したこと
524
588
 
525
589
 

7

タイトルの変更

2019/06/30 23:12

投稿

oku-haru
oku-haru

スコア10

test CHANGED
@@ -1 +1 @@
1
- Ruby on Railsで ログインページからログイン後、投稿ページへリダイレトさせたい。
1
+ Ruby on Railsで /signup → /users/ , /login → /posts/index へリを飛ばしたい。
test CHANGED
@@ -30,7 +30,13 @@
30
30
 
31
31
  ログインページ(テキストエリア)のままになります。
32
32
 
33
-
33
+ 本来ですと、下記のように
34
+
35
+ localhost:3000/login → localhost:3000/posts/index
36
+
37
+
38
+
39
+ なるはずなのですが・・・
34
40
 
35
41
  多分何かが足りない?のか、何かが間違っているのか
36
42
 

6

データベースについての自分の意見を加えました。

2019/06/29 18:15

投稿

oku-haru
oku-haru

スコア10

test CHANGED
File without changes
test CHANGED
@@ -518,19 +518,29 @@
518
518
 
519
519
 
520
520
 
521
+ DBがおかしいのか?と考え
522
+
523
+ rake db:migrate:reset
524
+
521
- ユーザの新規登録の確認
525
+ を実行し、再度新規登録画面から開始
522
-
526
+
523
- DBにもユーザが登録されていること確認できているので
527
+ DB新規登録id,passが登録されていること確認できています。
524
-
525
- DBの問題ではないと思っています。
526
528
 
527
529
 
528
530
 
529
531
  ログイン後の挙動
530
532
 
531
- redirect_toがおかしいのかな、と思っています。
533
+ redirect_toの動きがおかしいのか
534
+
532
-
535
+ current_userの動きがおかしいのかな?
536
+
533
-
537
+ と思い色々見ていますが
538
+
539
+
540
+
541
+ 何が正しくて何が間違っているのか
542
+
543
+ よくわからなくなりました・・・
534
544
 
535
545
 
536
546
 

5

コードを見やすくコードタイトルの位置を変更しました。

2019/06/29 18:11

投稿

oku-haru
oku-haru

スコア10

test CHANGED
File without changes
test CHANGED
@@ -70,10 +70,10 @@
70
70
 
71
71
 
72
72
 
73
- ```
74
-
75
73
  route.rb
76
74
 
75
+ ```
76
+
77
77
 
78
78
 
79
79
  Rails.application.routes.draw do

4

application.html.erb application_controller.rbを新たに加えました。

2019/06/29 18:07

投稿

oku-haru
oku-haru

スコア10

test CHANGED
File without changes
test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  localhost:3000/login →
24
24
 
25
- http://localhost:3000/login?containerPort=3000&languageName=rails5&locale=ja
25
+ localhost:3000/login?containerPort=3000&languageName=rails5&locale=ja
26
26
 
27
27
 
28
28
 
@@ -44,7 +44,21 @@
44
44
 
45
45
 
46
46
 
47
+ route.rb
48
+
49
+ users_controller.rb
50
+
51
+ application.html.erb
52
+
53
+ application_controller.rb
54
+
55
+
56
+
47
- routeとコントローラーの内容を載せています
57
+ の内容を載せています
58
+
59
+ current_userの動きがおかしいでしょうか・・・?
60
+
61
+
48
62
 
49
63
  ここなのでは?というのがあれば、すぐ載せますので
50
64
 
@@ -120,7 +134,7 @@
120
134
 
121
135
  ```
122
136
 
123
- usercontroller
137
+ users_controller.rb
124
138
 
125
139
  ```
126
140
 
@@ -320,6 +334,184 @@
320
334
 
321
335
  ```
322
336
 
337
+ application_controller.rb
338
+
339
+ ```
340
+
341
+ class ApplicationController < ActionController::Base
342
+
343
+ before_action :set_current_user
344
+
345
+
346
+
347
+ def set_current_user
348
+
349
+ @current_user = User.find_by(id: session[:user_id])
350
+
351
+ end
352
+
353
+
354
+
355
+ def authenticate_user
356
+
357
+ if @current_user == nil
358
+
359
+ flash[:notice] = "ログインが必要です"
360
+
361
+ redirect_to("/login")
362
+
363
+ end
364
+
365
+ end
366
+
367
+
368
+
369
+ def forbid_login_user
370
+
371
+ if @current_user
372
+
373
+ flash[:notice] = "すでにログインしています"
374
+
375
+ redirect_to("/posts/index")
376
+
377
+ end
378
+
379
+ end
380
+
381
+
382
+
383
+ end
384
+
385
+ ```
386
+
387
+ application.html.erb
388
+
389
+ ```
390
+
391
+ <!DOCTYPE html>
392
+
393
+ <html>
394
+
395
+ <head>
396
+
397
+ <title>ROMI-X</title>
398
+
399
+ <%= csrf_meta_tags %>
400
+
401
+
402
+
403
+ <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
404
+
405
+ <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
406
+
407
+
408
+
409
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
410
+
411
+ </head>
412
+
413
+
414
+
415
+ <body>
416
+
417
+ <header>
418
+
419
+ <div class="header-logo">
420
+
421
+ <% if @current_user %>
422
+
423
+ <%= link_to("LOMI-X", "/posts/index") %>
424
+
425
+ <% else %>
426
+
427
+ <%= link_to("LOMI-X", "/") %>
428
+
429
+ <% end %>
430
+
431
+ </div>
432
+
433
+ <ul class="header-menus">
434
+
435
+ <% if @current_user %>
436
+
437
+ <li>
438
+
439
+ <%= link_to(@current_user.name, "/users/#{@current_user.id}") %>
440
+
441
+ </li>
442
+
443
+ <li>
444
+
445
+ <%= link_to("投稿一覧", "/posts/index") %>
446
+
447
+ </li>
448
+
449
+ <li>
450
+
451
+ <%= link_to("新規投稿", "/posts/new") %>
452
+
453
+ </li>
454
+
455
+ <li>
456
+
457
+ <%= link_to("ユーザー一覧", "/users/index") %>
458
+
459
+ </li>
460
+
461
+ <li>
462
+
463
+ <%= link_to("ログアウト", "/logout", {method: :post}) %>
464
+
465
+ </li>
466
+
467
+ <% else %>
468
+
469
+ <li>
470
+
471
+ <%= link_to("LOMI-Xとは", "/about") %>
472
+
473
+ </li>
474
+
475
+ <li>
476
+
477
+ <%= link_to("新規登録", "/signup") %>
478
+
479
+ </li>
480
+
481
+ <li>
482
+
483
+ <%= link_to("ログイン", "/login") %>
484
+
485
+ </li>
486
+
487
+ <% end %>
488
+
489
+ </ul>
490
+
491
+ </header>
492
+
493
+
494
+
495
+ <% if flash[:notice] %>
496
+
497
+ <div class="flash">
498
+
499
+ <%= flash[:notice] %>
500
+
501
+ </div>
502
+
503
+ <% end %>
504
+
505
+
506
+
507
+ <%= yield %>
508
+
509
+ </body>
510
+
511
+ </html>
512
+
513
+ ```
514
+
323
515
 
324
516
 
325
517
  ### 試したこと

3

飛ばす先を明記しました

2019/06/29 18:04

投稿

oku-haru
oku-haru

スコア10

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,11 @@
2
2
 
3
3
  Ruby on Railsで
4
4
 
5
- ログインページからログイン後、投稿ページへリダイレクトさせたい。
5
+ ログインページからログイン後、マイページへリダイレクトさせたい。
6
+
7
+ localhost:3000/signup → localhost:3000/users/
8
+
9
+ localhost:3000/login → localhost:3000/posts/indexへ飛ばしたい。
6
10
 
7
11
 
8
12
 
@@ -10,14 +14,18 @@
10
14
 
11
15
  エラーメッセージはありませんが
12
16
 
13
- ログインページ(メールアドレス等記入するテキストエリア)からログイン後、投稿ページへリダイレクトできません。
17
+ ログインページ(メールアドレス等記入するテキストエリア)からログイン後、マイページへリダイレクトできません。
14
18
 
15
19
 
16
20
 
17
21
  現在はログイン後
18
22
 
23
+ localhost:3000/login →
24
+
19
25
  http://localhost:3000/login?containerPort=3000&languageName=rails5&locale=ja
20
26
 
27
+
28
+
21
29
  こういったURLになり
22
30
 
23
31
  ログインページ(テキストエリア)のままになります。

2

2019/06/29 17:22

投稿

oku-haru
oku-haru

スコア10

test CHANGED
File without changes
test CHANGED
@@ -344,9 +344,9 @@
344
344
 
345
345
 
346
346
 
347
- ここにより詳細な情報を記載してください。
347
+
348
-
348
+
349
- いわゆる、progaterのど初心者です。
349
+ いわゆる、progaterのど初心者です。
350
350
 
351
351
 
352
352
 

1

2019/06/29 08:49

投稿

oku-haru
oku-haru

スコア10

test CHANGED
File without changes
test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  エラーメッセージはありませんが
12
12
 
13
- ログインページからログイン後、投稿ページへリダイレクトできません。
13
+ ログインページ(メールアドレス等記入するテキストエリア)からログイン後、投稿ページへリダイレクトできません。
14
14
 
15
15
 
16
16
 
@@ -20,7 +20,7 @@
20
20
 
21
21
  こういったURLになり
22
22
 
23
- ログインページのままになります。
23
+ ログインページ(テキストエリア)のままになります。
24
24
 
25
25
 
26
26