0
acts_as_votable gem을 사용하고 있습니다.투표가 끝나고 응답이 500 상태가됩니다.
$('.story-vote-up').on("ajax:success", function(evt, data, status, xhr) {
console.log(data);
}).on("ajax:error", function(evt, data, status, xhr){
console.log(data);
});
과 LINK_TO :
<%= link_to 'Vote', vote_story_path(story), method: :put, remote: true %>
내 컨트롤러 액션 :
Started PUT "/stories/11/vote" for 127.0.0.1 at 2013-10-09 15:50:58 +0800
Processing by StoriesController#vote as JSON
Parameters: {"id"=>"11"}
Story Load (0.6ms) SELECT "stories".* FROM "stories" WHERE "stories"."id" = $1 LIMIT 1 [["id", "11"]]
User Load (1.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = 14 ORDER BY "users"."id" ASC LIMIT 1
Persona Load (0.4ms) SELECT "personas".* FROM "personas" WHERE "personas"."id" = $1 LIMIT 1 [["id", 15]]
(0.4ms) SELECT COUNT(*) FROM "votes" WHERE "votes"."votable_id" = $1 AND "votes"."votable_type" = $2 AND "votes"."voter_id" = 15 AND "votes"."vote_scope" IS NULL AND "votes"."voter_type" = 'Persona' [["votable_id", 11], ["votable_type", "Story"]]
ActsAsVotable::Vote Load (3.4ms) SELECT "votes".* FROM "votes" WHERE "votes"."votable_id" = $1 AND "votes"."votable_type" = $2 AND "votes"."voter_id" = 15 AND "votes"."vote_scope" IS NULL AND "votes"."voter_type" = 'Persona' ORDER BY "votes"."id" ASC LIMIT 1 [["votable_id", 11], ["votable_type", "Story"]]
(0.2ms) BEGIN
(0.2ms) COMMIT
(0.3ms) SELECT COUNT(*) FROM "votes" WHERE "votes"."votable_id" = $1 AND "votes"."votable_type" = $2 [["votable_id", 11], ["votable_type", "Story"]]
(0.4ms) SELECT COUNT(*) FROM "votes" WHERE "votes"."votable_id" = $1 AND "votes"."votable_type" = $2 AND "votes"."vote_flag" = 't' AND "votes"."vote_scope" IS NULL [["votable_id", 11], ["votable_type", "Story"]]
(0.3ms) SELECT COUNT(*) FROM "votes" WHERE "votes"."votable_id" = $1 AND "votes"."votable_type" = $2 AND "votes"."vote_flag" = 'f' AND "votes"."vote_scope" IS NULL [["votable_id", 11], ["votable_type", "Story"]]
(0.3ms) BEGIN
(0.2ms) COMMIT
Completed 500 Internal Server Error in 34ms (Views: 1.6ms | ActiveRecord: 8.0ms)
이 내 JS이다 : 나는 투표를 할 때
여기 로그입니다
def vote
@story = Story.find(params[:id])
respond_to do |format|
if @story.liked_by default_persona
format.html { redirect_to @story, notice: 'Voted' }
format.json { render json: @story, status: :voted, location: @story }
else
format.html { redirect_to @story, notice: 'Error voting' }
format.json { render json: @story.errors, status: :unprocessable_entity }
end
end
end
내가 원하는 응답으로 데이터를 가져올 수 있지만 상태 500이 필요한 이유는 무엇입니까?
감사합니다. 201 또는 202 상태가 더 적절합니까? –