OmniAuthを使ってFacebookに接続しました。私は情報の様々な部分を引っ張っているし、そこに1つだけのタイプがある場合は情報を引き出すことに問題はありません。例えば、電子メールアドレスを取得するために、私はちょうどuser.rbに次のように配置します。Rubyで複数のエントリを持つFacebookハッシュからデータを引き出す方法
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
これに伴う問題は、それが唯一の高校で最初の学校を引く、です。
- 私は大学がほしいと思うなら、私はそれをUrbana-Champaignのイリノイ大学にどのように引き渡すことができますか?高校とカレッジがある場合、私はそのコードが大学のどの学校であれ拾ってほしいと思うでしょう。
- 今、私は高校と大学の両方が欲しいとしましょう。どのように私は両方を引っ張って、私はPunahouが高校でUIUCが大学であることに気づくでしょうか?
- 複数の大学がある場合は、どのように私は、最近の大学のエントリを引くでしょうか?