2012-08-23 1 views
1

내 페이지 (내가 작성한)에 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를 찾는 방법 때문일까요? 아니면 제대로 호출되지 않습니다.

감사

+0

당신이 명확하게 할 수 자바 스크립트 콜백 미리 정의 전화? RoR에 PHP 코드를 포팅하는 것 이상의 것을 시도하고 있습니까? – FilmJ

+0

아무 것도 그 이상이고, 나는 등급 위젯이있는 div 만 클릭해야한다. 링크 나 버튼이 아니다. –

+0

괜찮아. 이건 루비의 데이터베이스에 등급 변경을 쓰는 방법을 묻는 질문이다. ? 당신이 그 부분을 가지고 있다고 가정하면, 자바 스크립트의 유일한 변화는 URL입니다. – FilmJ

답변

1

이미 다음이있을 수 있지만, 난 그냥 다시 뚜껑이

필요 내가 이미 레일 컨트롤러, 모델, 뷰와 함께 작동하는 방법을 알고 있다고 가정 (MVC)

먼저, 요청을 처리하기 위해 컨트롤러가 필요합니다 (게시물이나 가져 오기 또는 붙여 넣기와 상관없이)

두 번째로, 컨트롤러에서 urams를 전달할 때 params [: xxx]

귀하의 경우에는

, PARAMS [: whichpage, PARAMS [: ID] ... 그 후

, 텍스트 또는 자바 스크립트 또는 이제까지 당신이 을 원하는 나는 보통 자바 스크립트와 응답에 js.erb를 사용하여 응답 보기를 업데이트하거나 메시지를 경고

심지어 당신이 뭔가에 클릭하지 않고 등급을 설정 얼마나

+0

내가 당신이 운 좋게 받아 들일 수 있다면, 나는 그것을 고맙게 여길 것입니다. –

+0

1,보기에서 변수를 사용할 필요가 없으면 "@"을 추가 할 필요가 없습니다. 2,'@page == "eat"'not "=". 3,'@ tile.save'는 db –

+0

에 쓰고, format.js에 응답을 추가해야합니다.(직장에서 지금은 시도 할 수 없다) –

관련 문제