reflect_on_association method

Hi all, I am having trouble trying to use reflect_on_association method with given the simplified model:

class Order < ActiveRecord::Base   belongs_to :contractor, :class_name => "BusinessUnit" end

I expected the reflect_on_association method to return associated_foreign_key "contractor_id" but it returns "business_unit_id":

ruby-1.9.2-p0 > Order.reflect_on_association(:contractor).association_foreign_key => "business_unit_id"

do I miss something?

Bojan Mihelac wrote:

Hi all, I am having trouble trying to use reflect_on_association method with given the simplified model:

class Order < ActiveRecord::Base   belongs_to :contractor, :class_name => "BusinessUnit" end

I expected the reflect_on_association method to return associated_foreign_key "contractor_id" but it returns "business_unit_id":

ruby-1.9.2-p0 > Order.reflect_on_association(:contractor).association_foreign_key => "business_unit_id"

do I miss something?

What version of Rails are you using? At least in the 2.2.2 docs I'm looking at right now, :association_foreign_key isn't a valid option for belongs_to (it's only for habtm), so I'm not surprised that you're getting strange results. Try foreign_key.

Best,

I found it, should use primary_key_name:

ruby-1.9.2-p0 > Order.reflect_on_association(:contractor).primary_key_name => "contractor_id"

I thought at first that I would get it with foreign_key but it that method doesnt exists in ActiveRecord::Reflection::AssociationReflection