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

时间:2015-03-12 03:58:07

标签: ruby-on-rails mixpanel

我在我的Rails项目中使用acts_as_votable gem来允许经过身份验证的用户上/下投票。

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

鉴于acts_as_votable是一个宝石,这种情况下的最佳做法是什么?我应该重新打开课程还是分叉宝石?

1 个答案:

答案 0 :(得分:2)

如果您认为需要扩展acts_as_votable的功能,更好的做法是重新打开课程(猴子补丁)。从长远来看,它将更易于维护。

但最佳做法是远离acts_as_votable并修改您的日志记录代码。 acts_as_votablevote_registered?方法告诉您投票是否已保存,因此您的方法可能如下所示:

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