LinkedIn API与pengwynn的LinkedIn宝石

时间:2012-03-08 20:38:46

标签: ruby-on-rails ruby nokogiri linkedin

我需要一些帮助来获取LinkedIn API中这个Nokogiri输出中的一些元素(这是一个Ruby / Nokogiri问题,而不是LinkedIn API问题)

#<LinkedIn::Company:0x00000102c466e0 @doc=[#<Nokogiri::XML::Element:0x94017c5c     name="company" children=[#<Nokogiri::XML::Text:0x94017978 "\n        ">, #<Nokogiri::XML::Element:0x94017770 name="id" children=[#<Nokogiri::XML::Text:0x940173ec "1234">]>, #<Nokogiri::XML::Text:0x940165c8 "\n        ">, #<Nokogiri::XML::Element:0x94016320 name="name" children=[#<Nokogiri::XML::Text:0x94015d30 "Company Foo">]>, #<Nokogiri::XML::Text:0x94015768 "\n        ">, #<Nokogiri::XML::Element:0x94015560 name="size" children=[#<Nokogiri::XML::Text:0x94014ffc "501-1000 employees">]>, #<Nokogiri::XML::Text:0x94003770 "\n        ">, #<Nokogiri::XML::Element:0x94002438 name="type" children=[#<Nokogiri::XML::Text:0x817f9b7c "Public Company">]>, #<Nokogiri::XML::Text:0x817f95c8 "\n        ">, #<Nokogiri::XML::Element:0x817f93e8 name="industry" children=[#<Nokogiri::XML::Text:0x817f91a4 "SomeIndustry">]>, #<Nokogiri::XML::Text:0x817f8f4c "\n        ">, #<Nokogiri::XML::Element:0x817f8e48 name="ticker" children=[#<Nokogiri::XML::Text:0x817f8b3c "FOO">]>, #<Nokogiri::XML::Text:0x817f88d0 "\n      ">]>]> 

我能够轻松获得公司的一些属性 - 这些是company.name,company.type和company.industry,但其他像company.id,company.size和company.ticker都会导致NoMethod错误:

NoMethodError: undefined method `size' for #<LinkedIn::Company:0x00000102c42310>

为什么 - 我可以在对象中看到但无法访问它!我做错了什么?

1 个答案:

答案 0 :(得分:2)

我不确定Nokogiri是否可行。我使用直接的LinkedIn :: Mash对象并执行了此操作:

user = client.profile(:fields => %w(positions))
companies = user.positions.all.map{|t| t.company}
companies.each do |company|
    #ap company.inspect
    #ap "meow\n"
    if company.id
        ap "ID: #{company.id}"
    else
        ap "ID not present"
    end
    if company.industry
        ap "Industry: #{company.industry}"
    else
        ap "Industry not present"
    end
    if company.name
        ap "Name: #{company.name}"
    else
        ap "Name not present"
    end
    if company.size
        ap "Size: #{company.size}"
    else
        ap "Size not present"
    end
    if company.type
        ap "Type: #{company.type}"
    else
        ap "Type not present"
    end
    if company.ticker
        ap "Ticker: #{company.ticker}"
    else
        ap "Ticker not present"
    end 
end

属性并不总是存在所以我做了if / else怪异来表明我至少得到了这个对象。无论如何,如果有的话我会得到它们并打印它们。