2015-01-30 3 views
0

Я пытаюсь создать простое приложение Sinatra, которое вытаскивает из базы данных множество почтовых кодов и отображает их в JSON. У меня есть два получить заявления прямо сейчасREST API Маршруты с Sinatra не работают

get '/postalcodes' do  
    PostalCodes.all.to_json only: [:CountryCode, :PostalCode, :PlaceName, :AdminName1, :AdminCode1, :AdminName2, :AdminCode2, :AdminName3, :AdminCode3, :Latitude, :Longitude, :Accuracy] 
end 

get '/postalcodes/:countrycode' do  
    PostalCodes.find(params[:countrycode]).to_json only: [:CountryCode, :PostalCode, :PlaceName, :AdminName1, :AdminCode1, :AdminName2, :AdminCode2, :AdminName3, :AdminCode3, :Latitude, :Longitude, :Accuracy] 
end 

Первый GET работает нормально, но я надеюсь, что я мог бы ввести URI:

localhost:3000/postalcodes/US 

, чтобы получить все почтовые коды с кодом страны «США ». Ну, это не работает.

+0

Соглашение о Ruby для имен столбцов - это случай с змеей, и единственное для моделей, только FYI. Для вашего проблемного запроса вы хотите сделать 'PostalCodes.where (CountryCode: params [: countrycode])' для извлечения записей. –

ответ

0

Предполагая, что вы используете activerecord управление базой данных для PostalCodes, вы могли бы сделать это следующим образом:

PostalCodes.where("CountryCode" => params[:countrycode].to_s).all 

Я сделал дополнительные предположения относительно имен столбцов в базе данных, так что я надеюсь, что основная идея попадается даже если конкретный код может не работать.

+0

Спасибо! Это работало как чемпион. – Craigfoo

Смежные вопросы