2

OmniAuth を使用して Facebook に接続しました。さまざまな情報を取得していますが、1 種類しかない情報を取得しても問題はありません。たとえば、メール アドレスを取得するには、user.rb に次のコードを記述します。

user.email = auth["info"]["email"]

問題は、複数のエントリにあります。たとえば、教育については、2 つの結果があります。1 つはプナホウ スクールという名前の高校で、もう 1 つはイリノイ大学アーバナ シャンペーン校という名前のカレッジです。

education: 
    - !map:Hashie::Mash 
      school: !map:Hashie::Mash 
        id: "105510192816251"
        name: Punahou School
      type: High School
    - !map:Hashie::Mash 
      school: !map:Hashie::Mash 
        id: "163536409904"
        name: University of Illinois at Urbana-Champaign
      type: College

次を使用して最初の学校を取得できました。

if auth["extra"]["raw_info"]["education"]
    user.school = auth["extra"]["raw_info"]["education"][0]["school"]["name"]
end

これの問題は、高校である最初の学校だけを引っ張ることです。ここでいくつか質問があります。

  1. カレッジのみが必要な場合、イリノイ大学アーバナシャンペーン校を取得するにはどうすればよいですか? 高校と大学がある場合は、大学が何であれ、コードにその学校のみをピックアップさせたいと思います。
  2. さて、高校と大学の両方が欲しいとしましょう。プナホウが高校で UIUC が大学であることをどのように示しますか?
  3. 複数の大学がある場合、最新の大学エントリを取得するにはどうすればよいですか?
4

1 に答える 1