我试图在特定的数据结构中映射AR关系(以呈现为JSON)而我无法使其工作,由于某种原因,关系总是为零
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)
}
我希望这会返回一系列哈希值,但它总是在"#34;关系,显然是零(而不是)。 奇怪的是,如果我删除Hash并且只是放置client.person我可以看到我的数据。 有什么想法吗?
答案 0 :(得分:2)
使用#joins
。使用#includes
,您可能正在使用没有Person的客户端,因为它使用左外连接。您可能还想添加#uniq
以删除重复项。
Client.joins(:fixed_odds_account, person: [:phones, :emails]).uniq.map #code omitted