回答編集履歴
2
修正
answer
CHANGED
@@ -5,16 +5,10 @@
|
|
5
5
|
DBをいくら更新しても、変数に入っている値は変わらないので、
|
6
6
|
変数の中身を更新するために使われます。
|
7
7
|
|
8
|
-
```rb
|
9
|
-
def create
|
10
|
-
@like = Like.create(user_id: current_user.id, post_id: params[:post_id])
|
11
|
-
@likes = Like.where(post_id: params[:post_id])
|
12
|
-
|
8
|
+
~~ここにサンプルを書いていましたが誤りでしたので消しました。~~
|
13
|
-
@post.reload
|
14
|
-
# DBからデータを取得し直すことで @post.likes とした時↑で作成したLikeレコードが含まれる
|
15
|
-
end
|
16
|
-
```
|
17
9
|
|
10
|
+
`@post.likes`とした時点でSQLは再発行されるので、ここで`reload`する意味を感じませんが、`reload`自体の機能は上記の通りです。
|
11
|
+
|
18
12
|
> redirect_toとの違いについても教えていただけると幸いです。
|
19
13
|
|
20
14
|
比較するまでもなく全くの別物です。何もかもが違います。
|
1
追記
answer
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
> reloadはどのように機能しているのですか。
|
2
2
|
|
3
3
|
`@post`のデータをDBから再度取得しています。
|
4
|
+
やってることは `@post = @post.class.find(@post.id)` と同じです。
|
4
5
|
DBをいくら更新しても、変数に入っている値は変わらないので、
|
5
6
|
変数の中身を更新するために使われます。
|
6
7
|
|