2012-02-29 2 views
0

"좋아요", "싫어하는"액션이있는 투표 모델이 있습니다. 나는이 각각의 행동을위한 길을 가지고있다. 내가 행동을 부를 때, 나는 json 응답을 반환하고있다. 내 문제는 먼저 쿼리를 내 좋아하는/싫어하는 행동으로 보내는 방법을 알아야합니다. 내 자바 스크립트 (예 : jquery의 $ .getJSON을 사용하여 아약스 요청을 보내는)에서 루비/레일 변수에 액세스해야합니다. 예를 들어 올바른 항목에 대한 요청을 만들 수 있습니다. 많은 도움을 주셨습니다.js 레일을 렌더링하는 방법 3

답변

4

인기있는 기술은 데이터를 DOM에 첨부하는 것입니다. 예를 들어 (의사 코드는 다음과) :

<% items.each do |item| %> 
    <div class="like_button" data-item-id="<%= item.id %>">Like</div> 
<% end %> 

와 자바 스크립트

:

$(".like_button").on("click", function() { 
    var item_id = $(this).data('item-id'); // from the dom 
    // construct Ajax request for item_id 
}); 
+0

브랜든, 감사합니다. 나는 이렇게 시작했다 : ** link_to "like", "path_to_json": remote => true, : method => : post **, 그런 다음 like.js로 응답하여 dom을 업데이트한다. * : remote *에 내장 된 레일을 사용하지 않는 동안 메서드가 더 깨끗해 보입니다. 고마워. – berto77

+0

필자는 (보통 리소스를 업데이트하는 데있어) 'form_for ... remote : true'를 사용하는 것이 더 좋고, 레일즈'ajax : success' 등과 같은 바인딩을 선호합니다. 자바 스크립트에서. 훌륭한 글 : http://www.alfajango.com/blog/rails-3-remote-links-and-forms/ –

+0

브랜든, 업데이트 해 주셔서 감사합니다. 이것은 레일 초보자에게 많은 도움이됩니다. 링크 주셔서 감사합니다. 그것의 전부는 지금 명확하다. 건배. – berto77

관련 문제