2017-09-13 3 views
1

私は(JSONとしてレンダリングされる)特定のデータ構造におけるARの関係をマップしようとしていると私はいくつかの理由で関係が皆無ActiveRecordのクエリインターフェイスとマップ

Client.includes(:fixed_odds_account, person: [:phones, :emails]).map do |client| 
    { 
    id: client.id, 
    uri: client.uri, 
    updated_at: client.updated_at, 
    balance: client.fixed_odds_account.current_balance, 
    email: client.person.emails.pluck(:address), 
    first_name: client.person.first_name, 
    last_name: client.person.last_name, 
    number: client.person.phones.pluck(:number) 
    } 
常にあり、それを動作させることができません

私はこれがハッシュの配列を返すと期待していますが、それは常に "人"の関係では失敗します。これは明らかにnil(そしてそうではありません)です。 奇妙なのは、ハッシュを削除してclient.personだけを置くと、私のデータが見えるということです。

+2

質問にスタックトレースを含める –

答えて

2

#joinsを使用してください。 #includesを使用すると、左外部結合を使用するため、PersonなしでClientを押す可能性があります。重複を削除するには、#uniqを追加することもできます。

Client.joins(:fixed_odds_account, person: [:phones, :emails]).uniq.map #code omitted 
関連する問題