我使用的Active Record協會三個型號:嵌套屬性關聯的模型添加Rails中
Book Model
has_many :checkouts
User Model
has_many :checkouts
Checkout Model
belongs_to :book
belongs_to :user
在我看來,我需要從檢出的書,結賬和用戶名。
通過使用Book.first.checkouts
我得到:
#<ActiveRecord::AssociationRelation
[#<Checkout id: 30,
checkout_date: "2017-04-13",
return_date: nil,
book_id: 118,
user_id: 1,
created_at: "2017-04-13 17:43:07",
updated_at: "2017-04-13 17:43:07"
>,#<Checkout id: 50,
checkout_date: "2017-04-13",
return_date: nil,
book_id: 118,
user_id: 1,
created_at: "2017-04-14 00:33:34",
updated_at: "2017-04-14 00:33:34">
]>
但是,我想用戶名,而不僅僅是ID。我試過Book.first.checkouts.map { |c| c.user.name }
,但它只返回名稱,我需要結帳信息的其餘部分。理想情況下,我的數據(轉換成JSON)看起來像:
{
name: "Book Name",
checkouts: [
checkout_data: "Today",
user_name: "Mary"
]
}
如何添加用戶名我結賬的數據?
您是否單獨顯示結帳,即'.each'循環?你應該能夠顯示'checkout.user.name' – Okomikeruko
@Okomikeruko是的,單獨通過每個循環。 'checkout.user.name'起作用,但它只返回用戶名。我需要結帳和用戶名。我想知道如果我可以將它添加到虛擬屬性或類似的東西。 – BHOLT
我想我試圖結合2個對象的數據:'checkouts'和'user' – BHOLT