如何在rails中指定包含2个外键的表?

时间:2012-10-29 03:37:08

标签: ruby-on-rails ruby-on-rails-3.1

如果我有一个遗留数据库,我在另一个表中定义了2个实体之间的关系。如何在rails中创建该关系?

我想提出的基本关系是:

---管理员:

First_name
Last_name
id

---站点:

id
subject

--- Admin_Sites

 id
 teacher_id
 class_id

我知道在rails中我会使用belongs_to:和has_many:但是如果我有一个(不断更新的)teach_class表,我需要以某种方式指定那里的rails需要查找谁与哪个类相关的关系。我不知道如何指定这一点。是否有可能以某种方式指定:foreign_key为类模型中的“teach_class.teacher_id”?

2 个答案:

答案 0 :(得分:1)

在教师模型中你会有

has_many :teach_classes
has_many :classes, :through => :teach_classes

答案 1 :(得分:0)

请参阅此博客了解has_many:通过关系 - http://ruby-on-rails-dipak-panchal.blogspot.in/2012/10/has-many-through-relationship.html

class Admin < ActiveRecord::Base
  has_many :admin_sites
  has_many :sites, :through => :admin_sites
end

class Site < ActiveRecord::Base
  has_many :admin_sites
  has_many :admins, :through => :admin_sites
end

class AdminSites < ActiveRecord::Base
  belongs_to :admin
  belongs_to :site
end
相关问题