# Habtm question

**URL:** <https://www.ruby-forum.com/t/habtm-question/131087>\
**Category:** Rails\
**Created:** [March 5, 2008, 10:33pm UTC](https://www.ruby-forum.com/t/habtm-question/131087 "2008-03-05T22:33:27Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![remco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/9d8465/32.png) [@remco](https://www.ruby-forum.com/u/remco)\
**Post date:** [March 5, 2008, 10:33pm UTC](https://www.ruby-forum.com/t/habtm-question/131087/1 "2008-03-05T22:33:27Z")

</div>

hi,

i have 2 tables on a external database which i want to integrate in my  
rails-app.

class External \< ActiveRecord::Base  
establish\_connection :extern  
end

class Land \< External  
set\_table\_name “landen”  
end

class Bestemming \< External  
set\_table\_name “bestemmingen”  
end

This works fine:

test = Bestemming.find(:first)

#\<Bestemming:0xb701nb3c0 @attributes={“airport\_name”=\>“Lehigh Valley  
Intl Arpt”, “landcode”=\>“US”, “alt\_naam”=\>"", “bestemming\_id”=\>“ABE”,  
“dist\_ams”=\>“5948.3”, “naam\_en”=\>“Allentown”, “naam”=\>“Allentown”,  
“stad\_zoeknaam”=\>“allentown”}\>

test = Land.find(:first)

\<Land:0xb7018ad0 @attributes={“landcode”=\>“AF”, “alt\_naam”=\>"",  
“landafk”=\>“AFG”, “land\_zoeknaam”=\>“afghanistan”,  
“naam\_en”=\>“Afghanistan”, “naam”=\>“Afghanistan”}\>

Question: How can i realize a relationship between this classes.  
Landcode is the foreign\_key.

Grtz, remco

---

<div class="post-metadata">

**Author:** ![remco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/9d8465/32.png) [@remco](https://www.ruby-forum.com/u/remco)\
**Post date:** [March 6, 2008, 5:14pm UTC](https://www.ruby-forum.com/t/habtm-question/131087/2 "2008-03-06T17:14:39Z")

</div>

Doesn’t this work

class Land \< External  
has\_and\_belongs\_to\_many :bestemmigens  
set\_table\_name “landen”  
end

class Bestemming \< External  
has\_and\_belongs\_to\_many :landens  
set\_table\_name “bestemmingen”  
end

---

<div class="post-metadata">

**Author:** ![remco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/9d8465/32.png) [@remco](https://www.ruby-forum.com/u/remco)\
**Post date:** [March 6, 2008, 9:09pm UTC](https://www.ruby-forum.com/t/habtm-question/131087/3 "2008-03-06T21:09:44Z")

</div>

Adhiraj Rankhambe wrote:

> Doesn’t this work
> 
> class Land \< External  
> has\_and\_belongs\_to\_many :bestemmigens  
> set\_table\_name “landen”  
> end
> 
> class Bestemming \< External  
> has\_and\_belongs\_to\_many :landens  
> set\_table\_name “bestemmingen”  
> end

Nope…

I have different primary\_keys than default…because it is an central  
database.

Setup:

class External \< ActiveRecord::Base  
establish\_connection :extern  
end

class Land \< External  
has\_and\_belongs\_to\_many :bestemming  
set\_table\_name “landen”  
set\_primary\_key “landcode”  
end

class Bestemming \< External  
has\_and\_belongs\_to\_many :land  
set\_table\_name “bestemmingen”  
set\_primary\_key “bestemming\_id”  
end

Field | Type | Null | Key | Default | Extra |  
±--------------±-------------±-----±----±--------±------+  
| landcode | char(2) | NO | PRI | | |  
| naam | varchar(50) | NO | | | |  
| naam\_en | varchar(50) | NO | | | |  
| alt\_naam | varchar(200) | NO | | | |  
| landafk | char(3) | YES | | NULL | |  
| land\_zoeknaam | varchar(100) | NO | MUL | | |  
±--------------±-------------±-----±----±--------±------+

class Bestemming \< External  
has\_and\_belongs\_to\_many :land  
set\_table\_name “bestemmingen”  
set\_primary\_key “bestemming\_id”  
end

Field | Type | Null | Key | Default | Extra |  
±--------------±-------------±-----±----±--------±------+  
| bestemming\_id | char(3) | NO | PRI | | |  
| naam | varchar(50) | YES | | NULL | |  
| naam\_en | varchar(50) | YES | | NULL | |  
| landcode | char(2) | YES | MUL | NULL | |  
| airport\_name | varchar(100) | YES | | NULL | |  
| alt\_naam | varchar(50) | YES | | NULL | |  
| dist\_ams | decimal(6,1) | YES | | NULL | |  
| stad\_zoeknaam | varchar(50) | NO | MUL | | |

When i fire-up my console

> > var = Land.find(:first)  
> > oke!  
> > var.bestemming.naam  
> > not oke!!

What i’am doing wrong here!!

---

<div class="post-metadata">

**Author:** ![remco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/9d8465/32.png) [@remco](https://www.ruby-forum.com/u/remco)\
**Post date:** [March 7, 2008, 4:31pm UTC](https://www.ruby-forum.com/t/habtm-question/131087/4 "2008-03-07T16:31:19Z")

</div>

ok so what about the join table bestemming\_land\_join\_tables?

Does it have the keys landcode and bestemming\_id?
