我写requires
,就像这样
params do
requires :user_id, :type => Integer
optional :page, :type => Integer, :default => 1
optional :per_page, :type => Integer, :default => 20
end
我写了rescue_from
rescue_from :all do |e|
case e
when Grape::Exceptions::ValidationErrors
error!({ messages: e.full_messages }, 400)
else
Rails.logger.error "Api Error: #{e}"
Rails.logger.error "#{e.backtrace.join("\n")}"
error!({ messages: "errors" }, 500)
end
end
但如果没有Grape::Exceptions::ValidationErrors
params[:user_id]
答案 0 :(得分:0)
我不知道为什么你的代码不起作用,但我可以提供另一个有效的解决方案:明确地救援验证错误(在rescue_from:all之上)。
rescue_from Grape::Exceptions::ValidationErrors do |e|
error!({ messages: e.full_messages }, 400)
end
rescue_from :all do |e|
Rails.logger.error "Api Error: #{e}"
Rails.logger.error "#{e.backtrace.join("\n")}"
error!({ messages: "errors" }, 500)
end