0

私は Highrise と統合するアプリを構築していますが、これまでのところ非常に優れていますが、人をインポートしようとすると、次のようHighrise::Peopleな巨大なハッシュが吐き出されます。

[ ...,  #<Highrise::Person:0x1035084b8 @attributes={"contact_data"=>#<Highrise::Person::ContactData:0x1034f8b30 @attributes={"email_addresses"=>[], "addresses"=>[], "web_addresses"=>[], "phone_numbers"=>[], "twitter_accounts"=>[], "instant_messengers"=>[]}, @prefix_options={}>, "created_at"=>Sat Nov 28 05:38:26 UTC 2009, "title"=>"president", "updated_at"=>Sat Nov 28 05:38:27 UTC 2009, "background"=>"asdfasdfadsfas", "id"=>27569370, "owner_id"=>nil, "group_id"=>nil, "company_id"=>27569371, "last_name"=>"Doe", "author_id"=>192208, "visible_to"=>"Everyone", "first_name"=>"John"}, @prefix_options={}>, ... ]

それぞれのすぐ内側にHighrise::Personは、@attributeswhich is anotherHighrise::Person::ContactDataがあり、それ自体が、 の@attributesような配列email_addresses[]phone_numbers[]単純なキー/値を持つ別のものであるように見えます...

混乱して申し訳ありませんが、私が知りたいのは、first_nameこのようなハッシュから各人の を取得する方法です。

おそらく非常に単純で、混乱しているだけです...

アップデート

上記のハッシュを考えると、なぜこれがうまくいかないのですか?

@people = Highrise::Person.find(:all)

for person in @people do
   person.attributes["first_name"]
end
4

2 に答える 2

1

yourlistがPersonの配列である場合

yourlist.each do |person|
    puts person.attributes["first_name"]
end

Personにattr_readerがある場合、それはです。

于 2009-11-28T19:53:12.387 に答える