当一个表有2列时,在Rails3上使用ActiveRecord引用相同的主表
有如下表格。
Depts
id
dept_name
Users
id
dept_id
previous_dept_id
用户表有两列引用Depts表 如何为每列获取dept_name?
class Dept < ActiveRecord::Base
has_many :user
end
class User < ActiveRecord::Base
belongs_to :dept
end
答案 0 :(得分:2)
我认为您正在寻找的是以下内容:
class User < ActiveRecord::Base
belongs_to :dept
belongs_to :previous_dept, :class_name => 'Dept', :foreign_key => 'previous_dept_id'
end
然后您应该可以访问这两个部门:
dept_name = user.dept.dept_name
previous_dept_name = user.previous_dept.dept_name
请务必注意,您的Dept
模型只会在dept_id
列中找到用户。如果您需要按照之前的部门查找用户,我认为您必须向has_many
添加第二个Dept
。类似的东西:
class Dept < ActiveRecord::Base
has_many :user
has_many :previous_user, :class_name => 'User', :foreign_key => 'previous_dept_id'
end