Techioz Blog

ハッシュの配列をクラスに送信して、それぞれからユーザーを作成します

概要

ハッシュの配列があります

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