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.
on 2007-04-30 06:08
on 2007-04-30 16:27
on 2007-04-30 23:43
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.