ハッシュの配列をクラスに送信して、それぞれからユーザーを作成します
概要
ハッシュの配列があります
pets = [
{
"firstName": "Brianna",
"lastName": "Parson",
"children": ["sam","Joe"],
"buddys": {
},
{
"firstName": "jeffery",
"lastName": "thomas",
}
}
]
クラスにハッシュの配列を送信するにはどうすればよいでしょうか?
解決策
メソッドを初期化するものは何も必要ありません。初期化メソッドにハッシュを渡しました
def initialize(user)
@users = user
end
また、お気づきのように、ユーザー情報は配列内にあるため、まず配列をループし、ハッシュ構文を使用してすべてのハッシュ情報を取得する必要があります。
def show_userhash
@users.each do |user|
puts "#{user[:firstName]} is a #{user[:job]} also has #{user[:pets].length} #{pet_num = user[:pets].length == 1 ? "pet" : "pets"} "
end
end
新しいメソッドを使用してクラスのインスタンスを作成した場合、最初に初期化メソッドが実行され、次に show_userhash メソッドを呼び出す必要があります。
完全なコードは次のとおりです。
class Person
def initialize(user)
@users = user
end
def show_userhash
@users.each do |user|
puts "#{user[:firstName]} is a #{user[:job]} also has #{user[:pets].length} #{pet_num = user[:pets].length == 1 ? "pet" : "pets"} "
end
end
end
person_information = [
{
"firstName": "Brianna",
"lastName": "Parson",
"job": "SOFTWARE ENGINEER",
"totalAssetWorth": "2000.00",
"totalDebt": "1500.00",
"children": ["sam", "Joe"],
"pets": {
"dog": "jeff",
"bird": "zoe"
}
},
{
"firstName": "Jeffery",
"lastName": "thomas",
"job": "Lawyer",
"totalAssetWorth": "6000.00",
"totalDebt": "1300.00",
"children": [],
"pets": {
"cat": "gnocchi"
}
}
]
intro = Person.new(person_information)
intro.show_userhash