回答編集履歴

1

追記

2020/06/24 06:08

投稿

winterboum
winterboum

スコア23364

test CHANGED
@@ -5,3 +5,43 @@
5
5
  1. `current_user.group_users`として得られたgroup_user に「グループのid」のものが有るか調べる
6
6
 
7
7
  1. `GroupUser.find_by(group_id: グループのid,user_id: current_user.id)`としてデータがあるか調べる
8
+
9
+
10
+
11
+ 追記
12
+
13
+ ```
14
+
15
+ def transition_limit
16
+
17
+ correct_user = current_user.group_users.select('group_id') # (1)
18
+
19
+ selected_group = Group.find(params[:group_id])
20
+
21
+ selected_group_id = selected_group.id
22
+
23
+ # binding.pry
24
+
25
+ unless correct_user.include?(selected_group_id)
26
+
27
+ redirect_to root_path, notice: '「参加する」ボタンを押し、グループに参加してください'
28
+
29
+ end
30
+
31
+ end
32
+
33
+ ```
34
+
35
+ (1) はいけません。current_userを壊してますし、得られるのが group_user なので命名が悪い
36
+
37
+ group_id が「属しているかどうか調べるgroupのid」ですね?
38
+
39
+ ですと
40
+
41
+ `unless current_user.group_users.select{|gu| gu.group_id == group_id).present?`
42
+
43
+ ですね。
44
+
45
+ この方がスマートかな
46
+
47
+ `unless current_user.group_users.find_by(group_id: group_id)`