Ruby Linkedin Gem люди ищут с вложенными селекторами полей - PullRequest
0 голосов
/ 30 января 2012

Я использую этот очень хороший рубиновый драгоценный камень LinkedIn (https://github.com/pengwynn/linkedin) для моего проекта), и застрял в очень болезненной точке за последние 1 день.

Я выполняю поиск людей и использую селектор вложенных полей для ресурса "люди". Мой запрос выглядит примерно так:

@client.search(:fields => [ { :people => %w(id first-name api-standard-profile-request) } ], :keywords => 'some keywords')

и я получаю исключение неправильного URI

bad URI(is not URI?): /people-search:({:people=>["id", "first-name", "api-standard-profile-request"]})

Конечно, это не то, на что должен быть похож URL. Это должно быть похоже на

/people-search:(people:(id,first-name,api-standard-profile-request))

Потратив некоторое время на github и пройдя через код, я мог понять, как путь был сгенерирован гемом. В файле search.rb:

def field_selector(fields)
    result = ":("
    fields = fields.to_a.map do |field|
      if field.is_a?(Hash)
        innerFields = []
        field.each do |key, value|
          innerFields << key.to_s.gsub("_","-") + field_selector(value)
        end
        innerFields.join(',')
      else
        field.to_s.gsub("_","-")
      end
    end
    result += fields.join(',')
    result += ")"
    result
  end

где поля - это массив, который я передаю в метод поиска.

Странно то, что когда я запускаю этот фрагмент кода (метод field_selector) в консоли, с моим массивом fields в качестве входных данных, я получаю желаемый вывод!

Я совершенно не понимаю, почему я получаю ошибку, и не знаю, как ее исправить. Любые указатели были бы великолепны!

Спасибо!

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

Ваш код работал для меня.Попробуйте обновить ваш драгоценный камень до 2-0 ветви.Добавьте это в свой файл gem: gem 'linkedin',: git => 'http://github.com/pengwynn/linkedin.git',: branch =>' 2-0-stable '

0 голосов
/ 13 ноября 2013

Я знаю, что это немного поздно, но это описано в тестах:

https://github.com/hexgnu/linkedin/blob/master/spec/cases/search_spec.rb#L163

...