所以我希望使用jQuery / AJAX和图像触发投票。即我有一个竖起大拇指的图标和拇指向下。
我已经设置了gem,并运行了rake db:migrate并将所有内容整理出来。
但我不确定如何在我的应用中执行投票。
在我的模型中,我使用一个模型acts_as_voter
,这是我的Client
模型。 acts_as_votable
是我的Upload
模型的模型。因此,客户对上传进行投票。它实际上是一个thumb_up,而不是一个“投票”本身,因为没有业力或任何东西。每次上传时,每个客户端只会竖起大拇指。
在我看来,这就是我要执行投票的方式:
$("div#upvote img").live("click", compv.comments.upvote);
如何使用此实际使用此Rails 3 gem实现upvote
操作?
编辑:如果您有兴趣了解compv.comments.upvote
函数在当前表单中的作用,可以在此处看到:
compv.comments.upvote = function(event){
var uploaderID = compv.comments.getUploadID(event.target);
$.ajax({
url: '/uploads/'+uploaderID+'/upvote.js',
success: function(data, status, xhr){
var uploadElement = $("li[data-upload-id="+uploaderID+"]");
uploadElement.attr('data-upload-upvote', parseInt(uploadElement.attr('data-upload-upvote'))+1);
var imgElement = uploadElement.find("div.image-wrapper > img");
var img_opacity = imgElement.css('opacity');
if(img_opacity < 1 ) {
imgElement.fadeTo(600, 1, function() {
});
}
imgElement.removeClass("downvoted");
imgElement.addClass("upvoted");
}
});
};
然而,我很清楚,如果我要让这个宝石工作正常,这可能会改变。这只是我试图做这个gem可以做的事情的版本(尽管我更喜欢这个gem的实现)。
答案 0 :(得分:3)
这是一个关于如何在Rails中构建Ajax操作的问题,而不是与这个特定gem有关的问题。
请参阅此处的设置:Clarification on how to use "thumbs_up" voting gem with Rails 3
您可以在jQuery中使用以下内容进行设置:
$.post('/posts/' + id + '/vote_up', function() {
alert('success');
})
.error(function() { alert('Vote error.'); });
希望能让你更接近。