# Single Table Inheritance and HABTM Problem

**URL:** <https://www.ruby-forum.com/t/single-table-inheritance-and-habtm-problem/91358>\
**Category:** Rails\
**Created:** [April 7, 2007, 12:08pm UTC](https://www.ruby-forum.com/t/single-table-inheritance-and-habtm-problem/91358 "2007-04-07T12:08:09Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![purplehaze](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/f08c70/32.png) [@purplehaze](https://www.ruby-forum.com/u/purplehaze)\
**Post date:** [April 7, 2007, 12:08pm UTC](https://www.ruby-forum.com/t/single-table-inheritance-and-habtm-problem/91358/1 "2007-04-07T12:08:09Z")

</div>

I have Models:

class User \< ActiveRecord::Base  
end

class Dozent \< User  
has\_and\_belongs\_to\_many :subjects, :foreign\_key=\>‘user\_id’ ,  
:join\_table =\> “subjects\_users”  
end

class Subject \< ActiveRecord::Base  
has\_and\_belongs\_to\_many :dozents, :join\_table =\> “subjects\_users”,  
:foreign\_key=\>‘subject\_id’  
end

Join Table is ‘subjects\_users’:  
subject\_id  
user\_id

Controller:  
class ProbaController \< ApplicationController  
layout false

def index  
subj = Subject.find(1)  
dozs = subj.dozents  
render :text=\>“Hello World #{dozs}”  
end  
end

ruby 1.8.5  
rails 1.2.3  
Windows

Wenn I call this controller, I get:

ActiveRecord::StatementInvalid in ProbaController#index  
Mysql::Error: #42S22Unknown column ‘subjects\_users.dozent\_id’ in ‘on  
clause’: SELECT \* FROM users INNER JOIN subjects\_users ON users.id =  
subjects\_users.dozent\_id WHERE (subjects\_users.subject\_id = 1 ) AND (  
(users.`type` = ‘Dozent’ ) )  
RAILS\_ROOT: C:/work/unitas/config/…

Application Trace | Framework Trace | Full Trace  
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active\_record/connection\_adapters/abstract\_adapter.rb:128:in  
`log' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/connection_adapters/mysql_adapter.rb:243:in`execute’  
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active\_record/connection\_adapters/mysql\_adapter.rb:399:in  
`select' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/connection_adapters/abstract/database_statements.rb:7:in`select\_all’  
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active\_record/base.rb:427:in  
`find_by_sql' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:997:in`find\_every’  
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active\_record/base.rb:418:in  
`find' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/associations/has_and_belongs_to_many_association.rb:67:in`find’  
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active\_record/associations/association\_collection.rb:159:in  
`find_target' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/associations/association_proxy.rb:131:in`load\_target’  
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active\_record/associations/association\_proxy.rb:122:in  
`method_missing' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/associations/has_and_belongs_to_many_association.rb:91:in`method\_missing’  
#{RAILS\_ROOT}/app/controllers/proba\_controller.rb:7:in `index' -e:3:in`load’  
-e:3

Also settings in my models don’t work, and rails tries to join on  
subjects\_users.dozent\_id field.

Is it a bug?
