Я пытаюсь выбрать запись базы данных на основе значения столбца в дочерней таблице.Выбор записи родительской базы данных на основе значения дочернего столбца
В частности, у меня есть таблица, содержащая имена и контактные данные сотрудников компании, модель: Officer
. Должностное лицо has_many :roles
(генеральный директор, финансовый директор, президент и т. Д.); это позволяет офицеру быть президентом и генеральным директором, главным операционным директором и техническим директором, а также другими такими общими комбинациями.
Проблема: Я изо всех сил стараюсь выбрать офицера, основываясь на конкретной роли компании. (Скажем, я хочу, чтобы получить имя директора компании.)
Так я создал следующее:
class Company < ActiveRecord::Base
has_many :officers
has_many :roles, through: :officers
accepts_nested_attributes_for :officers
end
и
class Officer < ActiveRecord::Base
has_many :roles
belongs_to :company
accepts_nested_attributes_for :roles
end
и
class Role < ActiveRecord::Base
belongs_to :officer
end
Итак, я пробовал company.officer.where(roles.role_string: "Chairman of the Board")
... nope
и я пробовал company.roles.where(role_string: "Chairman of the Board").officer
... также нет
Любые указания будут оценены! Спасибо заранее.
@ Нить большое спасибо за ответ. Кажется, это привело меня в порядок. Как я могу запросить значение в столбце с этим? Я попробовал «Role.includes (: officer) .where (role_string:« Председатель правления »). Fname' (попытка получить имя сотрудника), но это не сработало. – neanderslob