Как обрабатывать 2 столбца, которые ссылаются на одну и ту же главную таблицу с ActiveRecord на Rails3 - PullRequest
0 голосов
/ 26 января 2012

Когда одна таблица имеет 2 столбца, которые ссылаются на одну и ту же главную таблицу с ActiveRecord на Rails3

Есть таблицы, как показано ниже.

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 

1 Ответ

2 голосов
/ 26 января 2012

Я думаю, что вы ищете следующее:

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     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...