내 페이지 (내가 작성한)에 5 개의 별점 등급 jQuery 위젯이 있습니다. 그것의 클릭 가치를 취급하는 기능을 가지고 간다. ROR을 사용하여 클릭하면 데이터베이스에 무언가를 보낼 수있는 .post
$('.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);
});
});
이제 내가 새 페이지 또는 아무것도를로드하지 않고 내 데이터베이스에 대한 평가 값을 저장, 레일에 루비를 사용하여 같은 효과를 달성하고자하고 있습니다 : 이전에이 내가 그것을 할 한 것입니다. 또한 가능한 경우 버튼이나 링크 등을 클릭하지 않아도됩니다. 이 작업을 수행하는 방법을 알아 내려고하는 모든 것이 링크 또는 양식 또는 버튼을 필요로합니다.
어디서나 볼 수있는 도움이나 방향에 크게 감사하겠습니다. 감사!
좋아이 난 내 함수 호출에있는 것입니다 : 다음 send_raing_controller.rb
$.post('/send_rating?whichpage=eat&id='+$js_tile["id"]+'&rating='+data.rating);
그리고 :
내가 경로를 긁어 때 포스트 기능을 만들 간다 때문에 생성 사용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
. 제대로 작동하지 않습니다. EatPage를 찾는 방법 때문일까요? 아니면 제대로 호출되지 않습니다.
감사
당신이 명확하게 할 수 자바 스크립트 콜백 미리 정의 전화? RoR에 PHP 코드를 포팅하는 것 이상의 것을 시도하고 있습니까? – FilmJ
아무 것도 그 이상이고, 나는 등급 위젯이있는 div 만 클릭해야한다. 링크 나 버튼이 아니다. –
괜찮아. 이건 루비의 데이터베이스에 등급 변경을 쓰는 방법을 묻는 질문이다. ? 당신이 그 부분을 가지고 있다고 가정하면, 자바 스크립트의 유일한 변화는 URL입니다. – FilmJ