: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