我正在开发一个包含帖子和评论的rails应用。现在它渲染和API,并使用角度访问该API。
现在一切正常但正在推进。我一直收到422
错误,我不明白为什么。我在角度上给它正确的路线,我在轨道上的控制器看起来很好,等等,但我仍然得到错误:422 (Unprocessable Entity)
这是我的角度代码
service.js
upvoteComment: function(postId, commentId, callback) {
$http({
url: 'https://url.com/posts/' + postId + '/comments/' + commentId + '/upvote.json',
method: 'PUT',
data: { comment_id: commentId, post_id: postId }
}).success(function(response) {
callback(response);
}).error(function(error) {
callback(error);
})
}
controller.js
$scope.upvoteComment = function(postId, commentId) {
PostService.upvoteComment(postId, commentId, function(data) {
console.log("inside upvoteComment");
console.log(data);
})
}
view.js
<ul ng-repeat="comment in post.comments">
<li>{{comment.body}}</li>
<span>{{comment.upvotes}}</span>
<button ng-click="upvoteComment(post.post.id, comment.id)">upvote</button>
</ul>
rails controller
def upvote
comment = Comment.find(params[:comment_id])
comment.upvote += 1
if comment.save
render json: comment.to_json, status: 200
else
render json: comment.errors.full_messages.to_sentence, status: :unprocessable_entity
end
end
铁路路线
resources :posts, only: [:index, :create, :show, :destroy] do
member do
put '/upvote' => 'posts#upvote'
end
resources :comments, only: [:create, :destroy] do
put '/upvote' => 'comments#upvote'
end
end
这似乎相对简单,但我没有从heroku那里得到任何关于它为什么渲染422
的错误。如果有人能够看到我做错了什么,那么非常感谢任何帮助
答案 0 :(得分:0)
解决方案是将其添加到应用程序控制器:skip_before_filter :verify_authenticity_token
。在那之后,现在一切正常。