У меня есть 2 модели: проект и расписание. Проект has_one График и график принадлежит проекту. После создания проекта один из сотрудников, участвующих в проекте, в конечном итоге создаст расписание. Я пытаюсь создать страницу, которая показывает работодателю все его/ее проекты, у которых есть расписание. В контроллере графики, я попытался следующий код:рельсы - не удается получить доступ к модели, принадлежащей другой модели
def show_incomplete_schedules_to_employers
@schedules = Schedule.where("project.employer_id = ?", current_user.id).all
@projects = @schedules.collect{|schedule| schedule.project}
end
но возвращает ошибку:
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: missing FROM-clause entry for table "project"
LINE 1: SELECT "schedules".* FROM "schedules" WHERE (project.employ...
^
: SELECT "schedules".* FROM "schedules" WHERE (project.employer_id = 32)):
app/controllers/schedules_controller.rb:174:in `show_incomplete_schedules_to_employers'
Как я могу получить доступ графики работодателей?
ошибка говорит, что не существует таблица с именем 'project', который вызывается для вашей' Расписание .where ("project.employer_id =?", current_user.id) .all' ... Что такое «проект» в заявлении, которое должно быть ссылкой? –
Все графики принадлежат проекту. – Philip7899
Правильно, но не так ли, что делает ваш второй оператор '@projects = ...'? –