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

質問編集履歴

2

groups_controller.rbのコードを追加しました。

2020/09/01 08:36

投稿

kumamin
kumamin

スコア12

title CHANGED
File without changes
body CHANGED
@@ -38,6 +38,33 @@
38
38
  end
39
39
  ```
40
40
 
41
+ **▼groups_controller.rb**
42
+ ```rb
43
+ class GroupsController < ApplicationController
44
+ before_action :authenticate_user!
45
+
46
+ def index
47
+ groups = current_user.groups.includes(:messages)
48
+ @groups = groups.joins(:messages).order("messages.created_at DESC")
49
+ end
50
+
51
+ def create
52
+ group = Group.create
53
+ group_user = GroupUser.create(group_id: group.id, user_id: current_user.id)
54
+ @user = User.find(params[:id])
55
+ group_user = GroupUser.create(group_id: group.id, user_id: @user.id)
56
+ @group_id = group_user.group_id
57
+ redirect_to group_messages_path(@group_id, user_id: @user.id)
58
+ end
59
+
60
+ private
61
+ def group_params
62
+ params.permit(:id, user_ids: [])
63
+ end
64
+
65
+ end
66
+ ```
67
+
41
68
  **▼views/users/show.html.haml**
42
69
  ```haml
43
70
  .Title

1

userとgroupモデルのコードと、GroupUserの中身がわかる画像を追加しました。

2020/09/01 08:36

投稿

kumamin
kumamin

スコア12

title CHANGED
File without changes
body CHANGED
@@ -61,6 +61,34 @@
61
61
  = link_to "メッセージを送る", group_messages_path(@group_id, user_id: @user.id), class: "Info_right__Btn"
62
62
  ```
63
63
 
64
+
65
+ **▼models/user.rb**
66
+ ```rb
67
+ class User < ApplicationRecord
68
+ devise :database_authenticatable, :registerable,
69
+ :recoverable, :rememberable, :validatable
70
+
71
+ validates :name, presence: true, length: {maximum: 10}
72
+
73
+ has_many :group_users, dependent: :destroy
74
+ has_many :groups, through: :group_users
75
+
76
+ has_many :messages, dependent: :destroy
77
+
78
+ end
79
+ ```
80
+
81
+
82
+ **▼models/group.rb**
83
+ ```rb
84
+ class Group < ApplicationRecord
85
+ has_many :group_users, dependent: :destroy
86
+ has_many :users, through: :group_users
87
+ has_many :messages, dependent: :destroy
88
+ end
89
+ ```
90
+
91
+
64
92
  ### 試したこと
65
93
 
66
94
  users_controller.rbのshowアクション内に
@@ -75,4 +103,5 @@
75
103
          GET /groups/:id/create(.:format) groups#create
76
104
  ```
77
105
 
78
- ここにより詳細な情報を記載してください。
106
+ **▼コンソールで`GroupUser.all`と打った結果**
107
+ ![イメージ説明](08c1540afe3ca02b3780d87356b5770d.jpeg)