我有两个彼此不直接关联的模型Client
和PotentialClient
,我希望能够在它们之间创建一个join
。
两个型号都具有字段mindbody_id
,但在Location
中它是唯一的[[only)。 Client
和PotentialClient
都属于Location
。
class Client < ApplicationRecord
belongs_to :location
end
class PotentialClient < ApplicationRecord
belongs_to :location
end
class Location < ApplicationRecord
has_many :potential_clients
has_many :clients
end
我以为这样的事情会起作用,但没有效果:我如何加入mindbody_id,因为它同时存在于
Client
和PotentialClient
中,并且在Location
中是唯一的?
#client.rb
has_one :potential_client, -> {
where(potential_clients: {location_id: self.location_id, mindbody_id: self.mindbody_id})
}
has_one :potential_client, -> { where(mindbody_id: mindbody_id }, through: :location
这应该从该位置获取所有“ potential_clients”,然后应用范围,并且您应该只有一个PotentialClient