の関連するモデルにネストされた属性を追加します。私の見解では私はActive Recordの関連付けを使用して3機種持っRailsの
Book Model
has_many :checkouts
User Model
has_many :checkouts
Checkout Model
belongs_to :book
belongs_to :user
を、私はチェックアウトから書籍、チェックアウト、およびユーザー名を必要とします。
#<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
を使用することにより、私が得ます。私はBook.first.checkouts.map { |c| c.user.name }
を試しましたが、それは名前だけを返すので、残りのチェックアウト情報が必要です。
{
name: "Book Name",
checkouts: [
checkout_data: "Today",
user_name: "Mary"
]
}
がどのように私は私のチェックアウトデータにユーザー名を追加することができます。理想的には、(JSONに変換)私のデータは、何かのように見えますか?
チェックアウトを個別に表示していますか?つまり、「.each」ループですか? 'checkout.user.name' – Okomikeruko
@Okomikeruko yesを各ループを通して個別に表示できるはずです。 'checkout.user.name'は動作しますが、ユーザー名だけが返されます。チェックアウトとユーザー名の両方が必要です。私はそれを仮想属性に追加することができるかどうか、それと同じように思っています。 – BHOLT
私は2つのオブジェクトのデータを結合しようとしていると思います: 'checkouts'と' user' – BHOLT