質問編集履歴
5
画像修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,9 +14,7 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
![イメージ説明](fb
|
17
|
+
![イメージ説明](faf71bf28adc58eee9dcfef6aac97ac7.png)
|
20
18
|
|
21
19
|
```:ruby
|
22
20
|
|
4
画像軽微修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -16,9 +16,7 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
![イメージ説明](7
|
19
|
+
![イメージ説明](fb43f2d751ae65ed879ab551e4855a7e.png)
|
20
|
-
|
21
|
-
|
22
20
|
|
23
21
|
```:ruby
|
24
22
|
|
3
画像修正しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
![イメージ説明](
|
19
|
+
![イメージ説明](7ca58dffd8c0d86b2fe3609bae9e9d37.png)
|
20
20
|
|
21
21
|
|
22
22
|
|
2
モデルを追加しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -21,6 +21,8 @@
|
|
21
21
|
|
22
22
|
|
23
23
|
```:ruby
|
24
|
+
|
25
|
+
#Userモデル
|
24
26
|
|
25
27
|
class User < ApplicationRecord
|
26
28
|
|
@@ -53,6 +55,54 @@
|
|
53
55
|
```
|
54
56
|
|
55
57
|
|
58
|
+
|
59
|
+
```
|
60
|
+
|
61
|
+
#Favoriteモデル
|
62
|
+
|
63
|
+
class Favorite < ApplicationRecord
|
64
|
+
|
65
|
+
belongs_to :user
|
66
|
+
|
67
|
+
belongs_to :recipe
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
validates_uniqueness_of :recipe_id, scope: :user_id
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
```
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
```
|
82
|
+
|
83
|
+
#レシピモデル
|
84
|
+
|
85
|
+
class Recipe < ApplicationRecord
|
86
|
+
|
87
|
+
belongs_to :user
|
88
|
+
|
89
|
+
has_many :favorites, dependent: :destroy
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
with_options presence: true do
|
94
|
+
|
95
|
+
validates :title
|
96
|
+
|
97
|
+
validates :body
|
98
|
+
|
99
|
+
end
|
100
|
+
|
101
|
+
end
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
```
|
56
106
|
|
57
107
|
|
58
108
|
|
1
補足点追加しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -51,3 +51,55 @@
|
|
51
51
|
|
52
52
|
|
53
53
|
```
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
```
|
60
|
+
|
61
|
+
<h1>recipe#index</h1>
|
62
|
+
|
63
|
+
<p>Find me in app/views/recipe/index.html.erb</p>
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
<% @recipes.each do |recipe| %>
|
68
|
+
|
69
|
+
<%= recipe.user.name %>
|
70
|
+
|
71
|
+
<%= recipe.title %>
|
72
|
+
|
73
|
+
<%= recipe.body %>
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
<% if Favorite.find_by(user_id: current_user.id, recipe_id: recipe.id) %>
|
80
|
+
|
81
|
+
<%= link_to "いいねを外す", recipe_favorites_path(recipe), method: :delete %>
|
82
|
+
|
83
|
+
<% else %>
|
84
|
+
|
85
|
+
<%= link_to "いいね", recipe_favorites_path(recipe), method: :post %>
|
86
|
+
|
87
|
+
<% end %>
|
88
|
+
|
89
|
+
<%= recipe.favorites.count %>
|
90
|
+
|
91
|
+
<% end %>
|
92
|
+
|
93
|
+
```
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
==============================================
|
100
|
+
|
101
|
+
補足ですが、<% if current_user.already_favorited?(recipe) %>メソッドを使用せずに、view側で<% if Favorite.find_by(user_id: current_user.id, recipe_id: recipe.id) %>としても同じ挙動になりました。
|
102
|
+
|
103
|
+
この書き方の方が個人的にしっくりくるのですが、これは正しい書き方なのでしょうか。
|
104
|
+
|
105
|
+
Favoriteモデルの中に、ログインしているユーザーのIDと、レシピIDが入っていたら「いいね」をしているとみなす。そうでなかったら「いいね」を表示させる、という認識です。
|