最近在做推送的时候,发现了这么一个小问题
class Comment < ApplicationRecord
# self.content
after_create :create_message
private
def create_message
# 推送给帖子的 owner
Message.create { receiver: comment.topic.owner }
# 获取 content 中被 @ 的用户
at_users = [user1, user2, user3]
Message.create [{user1}, {user2}, {user3}]
end
end
这些都挺正常的,但是有一个问题,我自己在我的帖子里回复,我会被推送一个消息,我@我自己,也会推送一个消息。如果想避免这种情况,就需要判断 receiver != current_user。在 stackoverflow 上搜索,找到了解决的办法,都是每个办法都会说明,这种在 model 中获取 current_user 的行为是不好的。有其他的解决办法吗?