2015-12-30 5 views
1

Я создаю API для Rails для приложения на Rails тоже, для аутентификации я использую devise_token_auth и на стороне приложения, использующего API, я использую httparty, devise_token_auth имеет метод current_user, который возвращает пользователь, если он зарегистрирован или нуль в противном случае, поэтому я хочу видеть на стороне приложения, которое использует API, если пользователь зарегистрирован там, поэтому я задаюсь вопросом, что является лучшим способом проверить, есть ли ответ в JSON - null.Каков наилучший способ узнать, является ли ответ в JSON равным нулю в Ruby on Rails?

Это часть того, что я получаю, когда использую метод проверки объекта, который получает значение, возвращаемое запросом из HTTParty в API.

#<HTTParty::Response:0x10 parsed_response=nil, @response=#<Net::HTTPOK 200 OK readbody=true>, @headers={"server"=>["Cowboy"], "date"=>["Wed, 30 Dec 2015 15:13:22 GMT"], "connection"=>["close"] blah... blah... blah... 

P.S: На данный момент, если я проверю, если длина ответа в формате JSON равно 0, я могу определить, если это нуль, но мне интересно, если есть лучший способ определить это.

ответ

2

Непонятно, из какого вопроса вы вызываете свой запрос HTTParty и почему вы отправляете объект ответа в отличие от тела ответа, что я и предполагаю, что вы хотите проверить наличие/существование. Вам может понадобиться JSON.parse(), если тело ответа является строкой; или вам может потребоваться позвонить .body на объект ответа, чтобы получить JSON, который вы ищете. Возможно, это поможет:

require 'json' 

# your_request = however you're calling your API w/HTTParty 
JSON.parse(your_request.body) == {} 

Надеюсь, это поможет! :)