Атрибут Google Drive isRoot Parent возвращает Nil

Я извлекаю файлы, соответствующие заданному запросу в моей учетной записи диска, с помощью созданной мной оболочки

files = get_files_by_query session, "title = 'Competitors' and trashed = false"

Это возвращает массив объектов Google::APIClient::Schema::Drive::V2::File.

Из консоли rails я могу получить родителей первого файла в массиве.

files.first.parents.first.id

Однако, когда я пытаюсь получить isRoot

files.first.parents.first.isRoot

Я получаю следующую ошибку

TypeError: Expected boolean, got NilClass.

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

Не уверен, что это связано, но сразу после ошибки. Если я повторю первую команду

files = get_files_by_query session, "title = 'Competitors' and trashed = false"

Результаты возвращаются в виде массива объектов Hash, а не объектов Google::APIClient::Schema::Drive::V2::File.

Ниже приведены обертки, использованные выше.

def get_files_by_query session, query
  get_files session, {'q' => query}
end

def get_files session, parameters
  drive = session.discovered_api("drive", "v2")
  result = session.execute(api_method: drive.files.list, parameters: parameters)
  if result.status == 200
    files = result.data.items
  else
    puts "An error occurred: #{result.data['error']['message']}"
  end
end

Спасибо!


person omarshammas    schedule 20.07.2012    source источник
comment
Я обошел это, выполнив еще один вызов API и получив родителя. Затем я проверяю, есть ли у родительских объектов массив размера 0 для своих родителей. Если да, то он в корневой папке.   -  person omarshammas    schedule 20.07.2012
comment
Похоже, что в синтаксическом анализе схемы в ruby-клиенте есть ошибка, которая срабатывает, как только происходит доступ к родительской коллекции. Первая запись преобразуется правильно, но все последующие записи и запросы прерываются. Глядя на это и надеюсь, что исправить в ближайшее время.   -  person Steve Bazyl    schedule 21.07.2012
comment
FYI - Подтверждено, что это ошибка в геме автоанализа, который используется для создания классов. Через день или около того должны появиться новые драгоценные камни. А пока, если вы хотите попробовать исправить, клонируйте github.com/sqrrrl/autoparse и соберите/установите гем локально.   -  person Steve Bazyl    schedule 24.07.2012
comment
Спасибо! Я не мог дождаться, поэтому нашел обходной путь, как описано выше, но я рад, что он исправлен :)   -  person omarshammas    schedule 27.07.2012


Ответы (1)


Больше информации для вашего сведения, так как это было рассмотрено в комментариях, но проблема, вызвавшая это, уже некоторое время исправлена ​​в клиентской библиотеке.

person Steve Bazyl    schedule 05.10.2012