# ActiveRecord model design help

**URL:** <https://www.ruby-forum.com/t/activerecord-model-design-help/197024>\
**Category:** Rails\
**Created:** [February 6, 2010, 11:15am UTC](https://www.ruby-forum.com/t/activerecord-model-design-help/197024 "2010-02-06T11:15:03Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![kadoudal](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/f0a364/32.png) [@kadoudal](https://www.ruby-forum.com/u/kadoudal)\
**Post date:** [February 6, 2010, 11:15am UTC](https://www.ruby-forum.com/t/activerecord-model-design-help/197024/1 "2010-02-06T11:15:03Z")

</div>

I need some help on the following model design :

User model (user.rb)  
class User \< ActiveRecord::Base  
has\_many :analyses, :dependent =\> :destroy

Analysis model (analysis.rb)  
class Analysis \< ActiveRecord::Base  
belongs\_to :instructor, :class\_name =\> “User”, :foreign\_key  
=\> :instructor\_id  
belongs\_to :member, :class\_name =\> “User”, :foreign\_key  
=\> :member\_id

creating an analysis works  
Analysis.create(:instructor\_id =\> 1, :member\_id =\> 2, :status =\>  
“pending”)  
I can get :  
Analysis.first.instructor  
Analysis.first.member

BUT  
User.find(1).analyses raise an error :  
ActiveRecord::StatementInvalid: Mysql::Error: Unknown column  
‘analyses.user\_id’  
is there any way to handle this design ?

thanks a lot for your help

(btw I use the inflection plural analysis -\> analyses)

---

<div class="post-metadata">

**Author:** ![kadoudal](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/f0a364/32.png) [@kadoudal](https://www.ruby-forum.com/u/kadoudal)\
**Post date:** [February 6, 2010, 11:47pm UTC](https://www.ruby-forum.com/t/activerecord-model-design-help/197024/2 "2010-02-06T23:47:32Z")

</div>

To make that work you might have to do this:

class User \< ActiveRecord::Base  
has\_many :instructor\_analyses, :foreign\_key =\> :instructor\_id,  
:dependent =\> destroy  
has\_many :member\_analyses, :foreign\_key =\> :member\_id, :dependent =\>  
destroy

def analyses  
instructor\_analyses + member\_analyses  
end  
end
