我在我的Rails项目中使用acts_as_votable
gem来允许经过身份验证的用户上/下投票。
每当用户进行投票时,都会使用事件记录服务Mixpanel记录投票事件。我想确保只有在保存投票时才提交投票活动。也就是说,如果用户已经投票,则不应再次记录该事件。
鉴于acts_as_votable
是一个宝石,这种情况下的最佳做法是什么?我应该重新打开课程还是分叉宝石?
答案 0 :(得分:2)
如果您认为需要扩展acts_as_votable
的功能,更好的做法是重新打开课程(猴子补丁)。从长远来看,它将更易于维护。
但最佳做法是远离acts_as_votable
并修改您的日志记录代码。 acts_as_votable
有vote_registered?
方法告诉您投票是否已保存,因此您的方法可能如下所示:
post.liked_by current_user
Mixpanel.submit 'new vote' if post.vote_registered?