Обработка ошибок базы данных в sinatra - PullRequest
0 голосов
/ 30 мая 2019

Я пишу http-сервер Синатры с активной записью.Я использую базу данных pg для хранения данных.

В этом коде я хочу получить все автомобили из базы данных с параметрами (имя, дать им порядок, ограничить их) и мне нужно обработать ошибки, которые поступают из базы данных.

Например,если я пингую '/ cars' из curl:

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

Как я могу обработать исключениякоторые поступают из базы данных и отображать их пользователю?

1 Ответ

0 голосов
/ 31 мая 2019

Вам необходимо проверить параметр входящего атрибута

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...