我的页面上有一个 5 星评级的 jQuery 小部件(我创建的)。它需要一个函数来处理其点击值。以前这是我做的:
$('.fivestar').each(function() {
$(this).ratings(5, $js_tile_data[$posValue][6]).bind('ratingchanged', function(event, data) {
$.post('jRating/send_rating.php?whichpage='+$page+'&id='+$js_tile_data[$posValue][0]+'&rating='+data.rating);
$(this).clickable(false);
});
});
现在我正在使用 ruby on rails 并希望达到相同的效果,将评级值存储到我的数据库中而不加载新页面或任何东西。另外,如果可能的话,我不想点击按钮或链接或类似的东西。我发现试图弄清楚如何做到这一点的一切都需要一个链接、表单或按钮。
任何帮助或寻找的方向将不胜感激。谢谢!
好吧,这就是我的函数调用中的内容:
$.post('/send_rating?whichpage=eat&id='+$js_tile["id"]+'&rating='+data.rating);
然后 send_raing_controller.rb:
class SendRatingController < ApplicationController
def create
@page = params[:whichPage]
@id = params[:id]
@rating = params[:rating]
if (@page = "eat")
@tile = EatTile.find(@id)
@newVotes = @tile.num_votes + 1
@newRating = (($tile.rating *@tile.num_votes) + @rating) / @newVotes
@tile.num_votes = @newVotes
@tile.rating = @newRating
end
end
end
我使用 create 是因为当我 rake 路由时,post 函数会创建。它不能正常工作,是因为我找到 EatPage 的方式吗?或者它没有被正确调用。
谢谢