【问题标题】:Ruby Linkedin Gem people search with nested field selectorsRuby Linkedin Gem 人们使用嵌套字段选择器进行搜索
【发布时间】:2012-01-30 16:10:28
【问题描述】:

我正在将这个非常好的 LinkedIn ruby​​ gem (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 上花了一些时间并浏览了代码之后,我可以理解 gem 是如何生成路径的。在 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

其中 fields 是我传递给搜索方法的数组。

奇怪的是,当我在控制台中运行这段代码(field_selector 方法)时,我的 fields 数组作为输入,我得到了想要的输出!

我完全不知道为什么会收到错误,并且不知道如何修复它。任何指针都会很棒!

谢谢!

【问题讨论】:

  • 我很好奇您在哪里找到了有关如何使用此 gem 进行公共搜索的示例?我什至不知道它进行了公共搜索,你介意给我发一个链接到你找到它的地方吗?谢谢!

标签: ruby-on-rails ruby ruby-on-rails-3.1 rubygems linkedin


【解决方案1】:

您的代码对我有用。尝试将您的 gem 升级到 2-0 分支。将此添加到您的 gem 文件中: gem 'linkedin', :git => 'http://github.com/pengwynn/linkedin.git', :branch => '2-0-stable'

【讨论】:

    【解决方案2】:

    我知道这有点晚了,但它在测试中有所描述:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      • 2013-07-24
      • 2019-09-03
      • 2012-08-29
      相关资源
      最近更新 更多