質問編集履歴

2

内容を再度修正

2016/03/01 12:47

投稿

ayu
ayu

スコア212

test CHANGED
File without changes
test CHANGED
@@ -44,7 +44,7 @@
44
44
 
45
45
  User←→Post←→Favorite
46
46
 
47
- ↓ ↑
47
+
48
48
 
49
49
  →→→→→→→→→→
50
50
 
@@ -78,6 +78,40 @@
78
78
 
79
79
  Other_Userが自分の投稿したPostに対して、Favoriteされた数が取得できません。
80
80
 
81
- 能動態・受動態の、受動態の部分が出りません
81
+ 下記ようにした場合UserFavoriteしたPostが出てくるのはわかりました
82
82
 
83
+ ```
84
+
83
- こちらのやり方が、どのようにするのかわからなかったのです。
85
+ class User < ActiveRecord::Base
86
+
87
+ has_many :posts
88
+
89
+ has_many :favoritess
90
+
91
+ has_many :favorite_posts, through: :favorites, source: :post
92
+
93
+ end
94
+
95
+
96
+
97
+ class Post < ActiveRecord::Base
98
+
99
+ belongs_to :user
100
+
101
+ has_many :favorites
102
+
103
+ end
104
+
105
+
106
+
107
+ class Favorite < ActiveRecord::Base
108
+
109
+ belongs_to :user
110
+
111
+ belongs_to :post
112
+
113
+ end
114
+
115
+ ```
116
+
117
+ 自分が投稿したPostに対して、Favoritesされた数の取得がわかりませんでした。

1

内容を具体化

2016/03/01 12:47

投稿

ayu
ayu

スコア212

test CHANGED
File without changes
test CHANGED
@@ -40,10 +40,44 @@
40
40
 
41
41
 
42
42
 
43
- こういう感じのモデルにしております。
43
+ ```
44
44
 
45
- ここから、UserがFavoriteを作成・削除することは可能であり、Favorite数もカウントすることはできます。
45
+ User←→Post←→Favorite
46
46
 
47
- 問題は、**自分が投稿したPostに対して、どれだけFavoriteをされているか**が知りたいです。
47
+ ↓ ↑
48
48
 
49
+ →→→→→→→→→→
50
+
51
+ ```
52
+
53
+ ここの投稿されたPostに対するFavoriteの数を取得したいです。
54
+
55
+ このやり方ですと、上記のモデルでUserがFavoriteすることはできました。
56
+
57
+ ```
58
+
59
+ class FavoriteController < ApplicationController
60
+
61
+ def create
62
+
63
+ @post = Post.find(params[:post_id])
64
+
65
+ favorite = current_user.favorites.build(post_id: @post.id)
66
+
67
+ favorite.save
68
+
69
+ redirect_to root_url
70
+
71
+ end
72
+
73
+ end
74
+
75
+ ```
76
+
77
+ UserがFavoriteした数はなんとか取得できるのですが、
78
+
79
+ Other_Userが自分の投稿したPostに対して、Favoriteされた数が取得できません。
80
+
81
+ 能動態・受動態の、受動態の部分が出来ておりません。
82
+
49
- のやり方がかなか分からず、ご教授をお願いします。
83
+ ちらのやり方が、どのようにするのわからなかったのです。