目标:我希望将所有客户的医疗条件作为一个数组包含在客户的结果中。
有:
cust = Customer.includes(:conditions).find(1)
预期结果:
#<Customer id: 1, first_name: "John", last_name: "Doe", conditions [...]>
实际结果:
#<Customer id: 1, first_name: "John", last_name: "Doe">
码:
我有2个类和第3个连接类(ConditionsCustomer)。
class Customer < ApplicationRecord
has_many :conditions_customers
has_many :conditions, through: :conditions_customers
end
#join table. Contains 2 foreign_keys (customer_id, condition_id)
class ConditionsCustomer < ApplicationRecord
belongs_to :customer
belongs_to :condition
end
class Condition < ApplicationRecord
has_many :conditions_customers
has_many :customers, through: :conditions_customers
end
有趣的是,我看到3个选择查询被解雇(客户,联接表和医疗条件表),所以我知道包含有些工作但不幸的是客户在没有医疗条件的情况下返回。
我也尝试过使用连接,但我一遍又一遍地获得了同一个客户的数组。
使用ActiveRecord有一种简单的方法吗?我不想手动合并记录。
答案 0 :(得分:0)
通过活动记录不太可能,因为json提供了一些很酷的可能性:
render json: customers,
include: {
conditions: {
only: [:attr1, :attr2], # filter returned fields
methods: [:meth1, :meth2] # if you need model methods
},
another_joined_model: {
except: [:password] # to exclude specific fields
}
}