回答編集履歴

2

修正

2020/03/05 03:32

投稿

rhiroe
rhiroe

スコア2349

test CHANGED
@@ -12,23 +12,11 @@
12
12
 
13
13
 
14
14
 
15
- ```rb
15
+ ~~ここにサンプルを書いていましたが誤りでしたので消しました。~~
16
16
 
17
- def create
18
17
 
19
- @like = Like.create(user_id: current_user.id, post_id: params[:post_id])
20
18
 
21
- @likes = Like.where(post_id: params[:post_id])
19
+ `@post.likes`とした時点でSQLは再発行されるので、ここで`reload`する意味を感じませんが、`reload`自体の機能は上記の通りです。
22
-
23
- # 例えば、ここで @post.likes としても↑で作成したLikeレコードは含まれない
24
-
25
- @post.reload
26
-
27
- # DBからデータを取得し直すことで @post.likes とした時↑で作成したLikeレコードが含まれる
28
-
29
- end
30
-
31
- ```
32
20
 
33
21
 
34
22
 

1

追記

2020/03/05 03:32

投稿

rhiroe
rhiroe

スコア2349

test CHANGED
@@ -3,6 +3,8 @@
3
3
 
4
4
 
5
5
  `@post`のデータをDBから再度取得しています。
6
+
7
+ やってることは `@post = @post.class.find(@post.id)` と同じです。
6
8
 
7
9
  DBをいくら更新しても、変数に入っている値は変わらないので、
8
10