5

使用 Grape gem 时如何自定义状态码响应?例如

post do
   status = :accepted
   @order = Order.find(params[:id])
end

这可以通过 error!({ error: 'Order not found'}, 404) 来实现,但是对于非错误如何做到这一点?

4

2 回答 2

13

找到了解决方案:

post do
  status 203
  @order = Order.find(params[:id])
end
于 2014-07-26T06:51:45.277 回答
0

从您的代码中,我看到您正在使用@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
于 2014-07-26T06:39:45.770 回答