我有两个模型 - 父母和孩子,以及父母has_many孩子,我有一系列父母,并希望为所有父母(包括没有孩子的父母)检索所有孩子。 Parent将呈现as_json并发送给react组件。
使用current_user产品获取所有类别的最简洁方法是什么,包括没有与之相关的产品的类别?
我想这样看:
@categories = Category.includes(:products).where(products: { user_id: current_user.id })
@categories.as_json(include: :products)
#Category that has no product is not included
class Product < ApplicationRecord
belongs_to :user
belongs_to :category
end
class Category < ApplicationRecord
has_many :products
end
答案 0 :(得分:1)
您可以覆盖as_json
方法
Category.includes(:products).as_json(user_id: current_user.id)
## model/category.rb
def as_json(options = {})
json = serializable_hash(options)
json['products'] = products.where(user_id: options[:user_id]).as_json
json
end