레일 패키지에 posts
스캐 폴드가 생성되었고 포스트 모델에 upvote
및 downvote
열이 추가되었습니다. 뷰 파일에 "upvote"버튼을 추가하고 upvote 버튼을 누를 때 AJAX 호출을하고 데이터베이스를 쿼리해야하지만 upvote 버튼에는 실제 레일이 없습니다. <form>
이 첨부되어 있습니다. 이 AJAX 호출을 만들고 upvoted 게시물에 대해 upvote를 데이터베이스에 추가하려면 어떻게해야합니까?양식이없는 레일에서 AJAX 요청하기
나는이 AJAX 호출 할 때 :
$('.up,.down').click(function(){
$.ajax({
type: 'POST',
url: '/posts',
dataType: 'JSON',
data: {
post: {
upvote: 1
}
},
success: function(){
alert('success')
}
});
});
그것은 500 오류를 반환합니다. 여기서 나는 어디로 갈 것인가? config/routes.rb
에서 다음
<%= link_to post_upvote_path(post), :remote => true, :method => "put" %>
<%= link_to post_downvote_path(post), :remote => true, :method => "put" %>
을 :
두 가지 사항이 있습니다. 1) 실제로 어떤 요청이 보내지 는가? (크롬 개발자 도구를 사용하여 네트워크를 보아라.) 2) 레일은 무엇을 받는가? 당신이 레일 500을 치는 것처럼 들리네. development.log를 확인하십시오. 그것이 받았던'params '을 보아라. –
2013 년 1 월 1 일에 127.0.0.1에서 POST를 시작했습니다./posts 16:55:16 -0800 PostsController # 처리 : JSON으로 작성 매개 변수 : { "post"=> { "upvote"=> "1 "}} 경고 : CSRF 토큰 인증을 확인할 수 없습니다. 1ms에 500 내부 서버 오류가 발생했습니다. ' – alt
아. CSRF 토큰이 필요합니다. 당신의'application.html'에'% = csrf_meta_tag %>'가 있는지 확인하십시오. 'jquery-rails' 통합은이 메타 필드를 헤더에 추가해야합니다. –