القضبان, العثور على الأشياء في مجمع تجزئات
-
06-07-2019 - |
سؤال
أنا بناء التطبيق الذي يتكامل مع ناطحات السحاب, و حتى الآن جيدة ، ومع ذلك ، عند محاولة استيراد شخص 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
هو @attributes
الذي هو آخر Highrise::Person::ContactData
, الذي في حد ذاته هو آخر @attributes
مع المصفوفات مثل email_addresses[]
و phone_numbers[]
وكذلك بسيطة الرئيسية/القيم...
آسف أن يكون مربكا جدا ، ما أريد أن أعرفه هو كيف لي أن مجرد الحصول على first_name
كل شخص من تجزئة مثل هذا ؟
ربما سوبر بسيطة أنا مجرد الخلط...
التحديث
أعتقد أن أفضل طريقة للتعبير سيكون بالنظر إلى تجزئة أعلاه ، لماذا لا يتم هذا العمل:
@people = Highrise::Person.find(:all)
for person in @people do
person.attributes["first_name"]
end
المحلول
إذا yourlist هو مجموعة من الأشخاص
yourlist.each do |person|
puts person.attributes["first_name"]
end
إذا الشخص وقد attr_reader, هذا هو.
نصائح أخرى
يمكنك أيضا القيام:
@people.each do |person|
puts person.first_name
end
لا تنتمي إلى StackOverflow