Ruby on rails 使用acts_as_votable gem时,保存投票后如何执行操作?

Ruby on rails 使用acts_as_votable gem时,保存投票后如何执行操作?,ruby-on-rails,mixpanel,Ruby On Rails,Mixpanel,在我的Rails项目中,我正在使用acts\u as\u votablegem来允许经过身份验证的用户向上/向下投票 每当用户进行投票时,都会使用事件记录服务Mixpanel记录投票事件。我希望确保仅在保存投票时才提交投票事件。也就是说,如果用户已经投票,则不应再次记录该事件 考虑到作为一个gem,这个场景中的最佳实践是什么?我应该重新打开该类还是放弃gem?如果您认为需要扩展acts as\u votable的功能,更好的做法是重新打开该类(monkey patch)。从长远来看,它将更易于维

在我的Rails项目中,我正在使用
acts\u as\u votable
gem来允许经过身份验证的用户向上/向下投票

每当用户进行投票时,都会使用事件记录服务Mixpanel记录投票事件。我希望确保仅在保存投票时才提交投票事件。也就是说,如果用户已经投票,则不应再次记录该事件


考虑到
作为一个gem,这个场景中的最佳实践是什么?我应该重新打开该类还是放弃gem?

如果您认为需要扩展acts as\u votable的功能,更好的做法是重新打开该类(monkey patch)。从长远来看,它将更易于维护

但最好的做法是远离
act\u asu votable
并修改日志代码
acts\u as\u votable
有一个
vote\u registered?
方法,告诉您是否保存了投票,因此您的方法可能如下所示:

post.liked_by current_user
Mixpanel.submit 'new vote' if post.vote_registered?

非常感谢。这正是我想要的。