Saturday, February 5, 2011

Rails Many to Many relationship issue

I have the following models:

class Person < ActiveRecord::Base
  has_many :accounts, :through => :account_holders 
  has_many :account_holders
end

class AccountHolder < ActiveRecord::Base
  belongs_to :account
  belongs_to :people
end

class Account < ActiveRecord::Base
  has_many :people, :through => :account_holders 
  has_many :account_holders
end

However, I am getting issues when using this relationship. Account.first.account_holders works just fine, but Account.first.people returns:

NameError: uninitialized constant Account::People
    from /Users/neil/workspace/xx/vendor/rails/activesupport/lib/active_support/dependencies.rb:105:in `const_missing'
    from /Users/neil/workspace/xx/vendor/rails/activerecord/lib/active_record/base.rb:2204:in `compute_type'
    from /Users/neil/workspace/xx/vendor/rails/activesupport/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnings'
    from /Users/neil/workspace/xx/vendor/rails/activerecord/lib/active_record/base.rb:2200:in `compute_type'
    from /Users/neil/workspace/xx/vendor/rails/activerecord/lib/active_record/reflection.rb:156:in `send'
    from /Users/neil/workspace/xx/vendor/rails/activerecord/lib/active_record/reflection.rb:156:in `klass'
    from /Users/neil/workspace/xx/vendor/rails/activerecord/lib/active_record/associations/has_many_through_association.rb:73:in `find_target'
    from /Users/neil/workspace/xx/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:353:in `load_target'
    from /Users/neil/workspace/xx/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:139:in `inspect'

Any ideas?

  • belongs_to requires the singular form. In AccountHolder:

    belongs_to :person
    

0 comments:

Post a Comment