Je pense que ce que vous cherchez en fait est ceci :
has_many :posts, :finder_sql =>
proc {"SELECT p.* from posts p join topics t on p.topic_id = t.id where t.id=#{id}"}
Depuis Rails 3.1, vous devez utiliser un proc au lieu d'une chaîne pour utiliser des champs comme #{id}
.
Voir le problème ici :https://github.com/rails/rails/issues/3920