has_many :through polymorphic

Hi All,

I have the following arrangement:

class PickAndPackRequest < ActiveRecord::Base   has_many :transactions, :as => :request   has_many :postings, :through => :transactions end

class Transaction < ActiveRecord::Base   belongs_to :request, :polymorphic => true   has_many :postings end

class Posting < ActiveRecord::Base   belongs_to :transaction end

But when I ask for PickAndPackRequest.find(:first).postings.find(:all) it fails with:

  Mysql::Error: Unknown column 'transactions.transaction_id' in 'on clause'

It generates the following SQL (which appears to be incorrect):

  SELECT postings.* FROM postings INNER JOIN transactions ON postings.id = transactions.transaction_id WHERE ((transactions.request_id = 14) AND (transactions.request_type = 'PickAndPackRequest'))

The "ON" clause appears to be wrong, I would have thought it would be:

    ON postings.transaction_id = transaction.id

Can anybody point out what I'm doing wrong, because I'm stumped!

Cheers

Matthew.

http://blog.hasmanythrough.com/2006/4/3/polymorphic-through

Thanks for the reply, however I'm pretty confident that this isn't the case that is covered in that article.

The article is talking about "the other side of" a polymorphic :through. That's not what I've got. If I was asking for all the Requests of a Transaction (of which there are many kinds of Request) then that would be "the other side" and could be solved as suggested in the article.

Cheers

Matthew.