我正在写具有活动记录的Sinatra HTTP服务器。我正在使用pg数据库来存储数据。
在这段代码中,我想从数据库中获取所有带参数的汽车(名称,给它们指定顺序,限制它们),并且我需要处理来自数据库的错误。
例如,如果我从curl ping'/ cars':
curl -X GET http://localhost:8080/cars?attribute=error
我需要结果: 抱歉,没有属性错误名称
get '/cars' do
@cars = Car.order("#{params[:attribute]} #{params[:order]}").limit(params[:limit]).offset(params[:offset])
@cars.to_json
end
如何处理来自数据库的异常并将其显示给用户?
答案 0 :(得分:0)
您需要检查传入的属性参数
get '/cars' do
if Car.columns.map(&:name).include?(params[:attribute])
@cars = Car.order("#{params[:attribute]} #{params[:order]}")
.limit(params[:limit]).offset(params[:offset])
@cars.to_json
else
{ error: 'Sorry, but there is no attribute with name error' }.to_json
end
end