Ich denke, wonach Sie eigentlich suchen, ist Folgendes:
has_many :posts, :finder_sql =>
proc {"SELECT p.* from posts p join topics t on p.topic_id = t.id where t.id=#{id}"}
Ab Rails 3.1 müssen Sie anstelle eines Strings eine Prozedur verwenden, um Felder wie #{id}
zu verwenden .
Sehen Sie sich die Ausgabe hier an:https://github.com/rails/rails/issues/3920