質問編集履歴

5

質問内容を変更

2020/10/09 05:44

投稿

kdh
kdh

スコア26

test CHANGED
File without changes
test CHANGED
@@ -63,3 +63,57 @@
63
63
  end
64
64
 
65
65
  ```
66
+
67
+ ### 追記
68
+
69
+ #### 上の条件式で一覧は表示されるようになりました。しかしアップデートアクション後に同じことで怒られています。
70
+
71
+
72
+
73
+ ```
74
+
75
+ def update
76
+
77
+ @task = Task.find(params[:id])
78
+
79
+ # タスクのポイントを確定
80
+
81
+ @task.update(task_params)
82
+
83
+
84
+
85
+ # userを確定
86
+
87
+ @user = current_user
88
+
89
+ @level = Level.find_by(number: @user.player_level + 1)
90
+
91
+ # userの今の経験値が入る
92
+
93
+ @tmp_exp = @user.exp
94
+
95
+ # 今現在の経験値 + 今回の経験値
96
+
97
+ @total_exp = @tmp_exp + @task.point_id
98
+
99
+ # ユーザーのトータル経験値を保存
100
+
101
+ @user.update(exp: @total_exp)
102
+
103
+ # レベルアップ処理
104
+
105
+ if @level.threshold <= current_user.exp  ⬅️この部分
106
+
107
+ @user.player_level += 1
108
+
109
+ @user.save
110
+
111
+ end
112
+
113
+ redirect_to root_path
114
+
115
+
116
+
117
+ end
118
+
119
+ ```

4

質問内容を変更

2020/10/09 05:44

投稿

kdh
kdh

スコア26

test CHANGED
File without changes
test CHANGED
@@ -34,8 +34,6 @@
34
34
 
35
35
 
36
36
 
37
- ステータスが500とか304だとかも関係するのでしようか?アドバイスお願いします。
38
-
39
37
 
40
38
 
41
39
  #### 試したこと
@@ -65,5 +63,3 @@
65
63
  end
66
64
 
67
65
  ```
68
-
69
- @nextlevelは次のレベルまで経験値が何必要かというものです

3

試したことをプラスで記述

2020/10/09 05:39

投稿

kdh
kdh

スコア26

test CHANGED
File without changes
test CHANGED
@@ -52,7 +52,7 @@
52
52
 
53
53
  @level = Level.find_by(number: @user.player_level + 1)
54
54
 
55
- if @level =nil
55
+ if @level.nil
56
56
 
57
57
  @nextlevel = 0
58
58
 

2

質問内容を変更

2020/10/09 05:09

投稿

kdh
kdh

スコア26

test CHANGED
File without changes
test CHANGED
@@ -35,3 +35,35 @@
35
35
 
36
36
 
37
37
  ステータスが500とか304だとかも関係するのでしようか?アドバイスお願いします。
38
+
39
+
40
+
41
+ #### 試したこと
42
+
43
+ ```
44
+
45
+ def index
46
+
47
+ if user_signed_in?
48
+
49
+ @tasks = current_user.tasks.where(point_id: nil)
50
+
51
+ @user = current_user
52
+
53
+ @level = Level.find_by(number: @user.player_level + 1)
54
+
55
+ if @level =nil
56
+
57
+ @nextlevel = 0
58
+
59
+ else
60
+
61
+ @nextlevel = @level.threshold - current_user.exp
62
+
63
+ end
64
+
65
+ end
66
+
67
+ ```
68
+
69
+ @nextlevelは次のレベルまで経験値が何必要かというものです

1

欲しい答えをもらいやすくするため

2020/10/08 13:57

投稿

kdh
kdh

スコア26

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- ### herokuでデプロイした際エラー画面になりログを確認しに行ったらNoMethodError (undefined method `threshold' for nil:NilClass):でした。ローカル環境ではしっかり作動しているのになしょうか?
1
+ ### herokuでデプロイした際エラー画面になりログを確認しに行ったらNoMethodError (undefined method `threshold' for nil:NilClass):でした。ローカル環境ではしっかり作動しているのに@level = Level.find_by(number: @user.player_level + 1)で指定のレコードが見つからい理由がわからないす。
2
2
 
3
3
  ![イメージ説明](715e9199631dc63c89078189a39b6967.png)
4
4