投票通过,但得到 500 状态作为回应
Vote goes through but getting 500 status in response
我正在使用acts_as_votable gem。
这是我投票时的日志:
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:
$('.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 %>
和我的控制器操作:
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?
对于成功的分支,您将返回status: :voted
这会导致 500 作为其未注册 Rails 的状态代码。
这是整个轨道符号到代码的映射(2008 链接(http://www.codyfauser.com/2008/7/4/rails-http-status-code-to-symbol-mapping
或者只是在数字 status: 200
中使用所需的状态代码。
相关文章:
- 事件和状态
- 获取选择框的状态
- 相位器状态未捕获参考错误
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何使用密码检测网络中的状态连接
- Ember.js-接口状态应该存储在哪里
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- 在Angular 2中布线期间保持零部件处于活动状态
- 在mvc应用程序中,在回发时保留最初隐藏的文本框的隐藏或可见状态
- XMLHttpRequest未返回值-状态202
- 使用javascript反复检查用户在facebook上的登录状态
- 如何使bxslider仅在移动视图中处于活动状态
- 获取ASP.NET Ajax Timer状态
- React redux初始化功能,无论状态变化如何
- 无法在现有状态转换期间更新-未使用任何非法的setState()
- 悬停下拉菜单即使在鼠标移出后也保持活动状态
- 从组件状态的数组中删除元素
- iOS 中的按钮触摸状态
- 投票通过,但得到 500 状态作为回应
- 有任何回应吗?Ext.Ajax.request的状态码列表