我正在使用这个非常好的LinkedIn ruby gem(https://github.com/pengwynn/linkedin)进行我的一个项目,并且在过去的一天里陷入了非常痛苦的境地。
我正在进行人员搜索并使用嵌套字段选择器作为“人员”资源。我的查询看起来像这样:
@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
其中字段是我传递给搜索方法的数组。
奇怪的是,当我在控制台中运行这段代码(field_selector方法)时,我的 fields 数组作为输入,我得到了所需的输出!
我完全迷失了为什么我收到错误,并且不知道如何解决它。任何指针都会很棒!
谢谢!
答案 0 :(得分:1)
您的代码对我有用。尝试将您的gem升级到2-0分支。将其添加到您的gem文件中: gem' linkedin',:git =&gt; 'http://github.com/pengwynn/linkedin.git',: branch =&gt; '2-0-稳定'
答案 1 :(得分:0)