【发布时间】: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