【问题标题】: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
    

    【讨论】:

    • 谢谢,我会更新我的问题以反映您的更改。
    猜你喜欢
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    • 2013-11-22
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多