У Rails нет способа автоматически перенаправлять вызовы ActiveResource, поскольку только GET
и HEAD
запросы могут быть автоматически перенаправлены, согласно HTTP-спецификации .
Таким образом,перенаправление с сервера вызовет исключение ActiveResource::Redirection
, и вам придется обработать это исключение в своем коде:
begin
# Make some ActiveResource calls
rescue ActiveResource::Redirection
# Error handling
end
Вы можете попытаться сделать новый запрос HTTPS в rescue
блок (возможно, путем обновления атрибута site
модели ActiveResource).Однако вам потребуется такая обработка ошибок во всех операциях ActiveResource, что затруднит чтение и поддержку вашего кода.
Поэтому я рекомендую вам не пытаться обрабатыватьперенаправляет в ваш код, но вместо этого требует, чтобы все клиенты, подключающиеся к вашим приложениям, всегда использовали версию HTTPS.