在我的应用程序中,当 aUser
在Comment
a中生成 a 时Post
,Notifications
会生成将该评论标记为未读。
class Notification < ActiveRecord::Base
belongs_to :user
belongs_to :post
belongs_to :comment
class User < ActiveRecord::Base
has_many :notifications
class Post < ActiveRecord::Base
has_many :notifications
我正在制作一个索引页面,其中列出了一个用户的所有帖子以及该用户的每个帖子的通知计数。
# posts controller
@posts = Post.where(
:user_id => current_user.id
)
.includes(:notifications)
# posts view
@posts.each do |post|
<%= post.notifications.count %>
这不起作用,因为它计算所有用户的通知。为单个用户计算通知而不在每个帖子中运行单独查询的有效方法是什么?