我使用pengwynn的LinkedIn gem从LinkedIn获取身份验证。一切正常,我在回调中得到一个Mash,如下所示:
#<LinkedIn::Mash all=[#<LinkedIn::Mash company=#<LinkedIn::Mash id=1422 industry="Banking"
name="Company" size="10,001+ employees" ticker="ABC" type="Public Company"> id=2851554
is_current=true start_date=#<LinkedIn::Mash month=12 year=2008> summary="" title="Boss">] total=1>
如何将其解析为类似于Rails参数的东西,以便从中创建一个新对象?
谢谢。
答案 0 :(得分:3)
当您收到来自LinkedIn的任何类型的连接列表时,您需要从all
进入列表。在您从LinkedIn收到的对象上,您有{all, total}
。 total
将为您提供数组中的对象数量,all
将为您提供所有对象。因此,如果您想将第一家公司变为哈希,您可以致电object.all.first.to_hash
。您可以通过执行object.all.each {|c| # your block}
来遍历所有这些内容。
如果你自己的Rails模型匹配从linkedin gem返回的对象,你可以这样做:
companies.all.each do |company|
Company.create(company.to_hash)
end
如果他们没有映射1:1,您只需选择所需的字段:
companies.all.each do |company|
c = Company.new
c.name = company.name
c.year_founded = company.start_date.year
c.ticker = company.ticker
# etc. etc. etc.
c.save
end
答案 1 :(得分:2)
您可以致电.to_hash
将Mash变为哈希(如params
)。
来源:
https://github.com/intridea/hashie/blob/master/lib/hashie/hash.rb