У меня есть 3 таблицы в моем приложении rails.- Пользователь - lnkUserPerson - Персона
Пользователь has_one Персона через lnkUserPerson & Person has_one Пользователь через lnkUserPerson.
Таблица lnkUserPerson содержит 3 поля - user_fk, которые представляют идентификатор пользователя - person_id, который представляетидентификатор этого пользователя в таблице Person - boss_id, который представляет идентификатор руководителя пользователя в таблице Person
. Для получения сведений о пользователе в таблице персон используется: @ user.lnkuserperson.person.name.
Я хотел бы знать, как получить данные о личности начальника пользователя.
Я пытался использовать:
@userBoss = Person.find(:first, :conditions => ["id = ?", @user.lnkuserperson.boss_id])
, но когда пытаюсь позвонитьэто, на мой взгляд, выдает ошибку.
Я хочу знать, чтобы получить информацию о боссе из таблицы Person с помощью объекта @user.
Модель пользователя:
has_one :lnkuserperson
has_one :person, :through => :lnkuserperson, :source=>:person
has_one :boss, :through => :lnkuserperson, :source=>:boss
Модель человека:
has_one :lnkuserperson
has_one :user, :through => :lnkuserperson
Модель персонажа:
belongs_to :user
belongs_to :person, :class_name => "Person", :foreign_key => "person_id"
belongs_to :boss, :class_name => "Person", :foreign_key => "boss_id"
Таким образом, чтобы получить сведения о боссе (например, ниже я получаю имя)пользователь,я просто звоню:
@user.lnkuserperson.boss.name