【问题标题】:Set status code in Grape gem在 Grape gem 中设置状态码
【发布时间】:2014-07-26 14:51:45
【问题描述】:
在使用 Grape gem 时如何自定义状态码响应?例如
post do
status = :accepted
@order = Order.find(params[:id])
end
这可以通过出现错误来实现!({ error: 'Order not found'}, 404) 但是如果没有错误,如何做到这一点?
【问题讨论】:
标签:
ruby-on-rails
ruby-grape
grape-api
【解决方案1】:
找到解决办法:
post do
status 203
@order = Order.find(params[:id])
end
【解决方案2】:
从您的代码中,我看到您正在使用@order,但您之前没有定义它,所以它没有在视图中找到并给出错误
希望您的代码在更新状态时看起来像这样,这样您就可以使用put 而不是post
put ':id' do
@order = Order.find(params[:id])
@order.update_attributes!(:status, :accepted)
end
或post
post do
@order = Order.new
@order.status = :accepted
@order.save!
end