私のページ(私が作成した)に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
ルートをレーキするとpost関数がcreateになるため、createを使用しました。正しく機能していません。EatPageの検索方法が原因でしょうか。または、正しく呼び出されていませんか。
ありがとう