2017-09-13 65 views
1

我試圖映射在一個特定的數據結構中的AR關係(被渲染JSON),我不能讓它工作,由於某種原因,關係總是零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) 
    } 

我期望這個返回哈希數組,但它總是在「人」的關係,這顯然是零失敗(它不是)。 什麼奇怪的是,如果我刪除了哈希,只是把client.person我可以看到我的數據。 有什麼想法?

+2

在問題中包含堆棧跟蹤 –

回答

2

使用#joins。隨着#includes你可能會打的人沒有一個客戶,因爲它使用左外連接。您可能還需要添加#uniq刪除重複。

Client.joins(:fixed_odds_account, person: [:phones, :emails]).uniq.map #code omitted