사용자가 링크를 통해 "같은 수"를 늘릴 수있는 간단한 아약스 기능을 만듭니다.레일즈 3 아약스 응답이 실행되지 않습니다.
내 컨트롤러 코드를 실행하는 링크를 얻을 수 있었지만 브라우저가 응답을 다시 받고 있지만 응답은 실행되지 않습니다.
.likes
.like_up
= link_to(image_tag('/images/thumb_up.png'), '/like/' + question.id.to_s, :remote => true)
#like_count
= 22# question.likecount
.like_down
= link_to(image_tag('/images/thumb_down.png'), '/dislike/' + question.id.to_s, :remote => true)
그리고 likes_controller로 전환 :
등 연결 부분에
alert('2');
:
def up
@like = current_user.likes.create(:question_id => params[:question_id], :like => true)
respond_to do |format|
format.js
end
end
그런 다음 내 up.js.haml에서 단순히 디버그 자바 스크립트를
등은 없습니다. 내가 브라우저에서 같은 링크를 누르면
레일 그것이 js.haml
...
Rendered likes/up.js.haml within layouts/application (104.9ms)
Completed 200 OK in 923ms (Views: 116.3ms | ActiveRecord: 20.1ms)
렌더링했다고 나 다세대 로그 내가 브라우저가 확실히를 가져 응답을 볼 때이 up.js처럼 보인다 .haml은 yield 태그가있는 응용 프로그램 레이아웃으로 렌더링됩니다.
<div class='content'>
alert('2');
</div>
나는 이것이 브라우저가 원하는 것을 원하지 않는다. 또한 ajax 요청 중에 firebug 콘솔을 볼 때 요청이 전송 된 후에는 아무 일도 일어나지 않습니다.
왜 이것이 작동하지 않는지 알 수 있습니까? 내가 찾은 모든 자습서와 안내서는 내가 여기서하는 것과 같은 방식으로 수행됩니다.
감사합니다 :) 레이아웃을 사용하지 않도록 설정하면이 문제가 해결됩니다. 컬은 Ajax가 작동하기 시작한 후에도 Content-Type이 text/html이라고 말했습니다. – Mika
어쩌면 당신은 렌더링을 할 수 있습니다 : js => 'up'또는 render : partial => 'up', : format => 'json' –
왜 그게 효과가 있을지 아는 사람? –