Установить код состояния в драгоценном камне Grape

Как настроить ответ кода состояния при использовании драгоценного камня Grape? например

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

Это может быть достигнуто с ошибкой! ({ ошибка: «Заказ не найден»}, 404), но как это сделать без ошибок?


person TrevTheDev    schedule 26.07.2014    source источник
comment
rdoc.info/github/inridea/grape/Grape/   -  person Brad Werth    schedule 26.07.2014


Ответы (2)


Нашел решение:

post do
  status 203
  @order = Order.find(params[:id])
end
person TrevTheDev    schedule 26.07.2014

Из вашего кода я вижу, что вы используете @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
person Rajarshi Das    schedule 26.07.2014
comment
Спасибо, я обновлю свой вопрос, чтобы отразить ваше изменение. - person TrevTheDev; 26.07.2014