:has_many through with owner-dependent conditions

I have a situation where I abstractly have a has_many through
relationship between three tables. Without the through, I’d have no
trouble passing the necessary value to the third table, but with it, I
have no access to the original object id.

This is what I’ve come up with but I’m wondering if there’s not
something better (particularly since sql_conditions isn’t really part
of the public API.)

belongs_to :property_type

has_many :properties,
:through => :property_type do
def sql_conditions
conditions = “properties.integer_value = #{@owner.id}”
if base = super
conditions = “(” + [ conditions, base ].join(")AND(") + “)”
end
conditions
end
end