Давайте разберем полученную ошибку:
ActionView :: TemplateError (неопределенный метод `controls 'для #) в строке 21 приложения / views / site_manager / _building.html.erb
Первая часть ActionView::TemplateError
- это тип возникшего исключения, который в данном случае не очень интересен. Следующая часть, однако:
неопределенный метод `controls 'для #
Это в основном говорит о том, что вы пытаетесь вызвать метод с именем controls
для объекта, который является экземпляром модели Control. Также сообщается, что метод controls
не определен в этом экземпляре.
в строке 21 приложения / views / site_manager / _building.html.erb
Выше указано, где найти источник этой ошибки, а именно строку 21 в части site_manager / building. Эта строка выглядит так:
<%for control in building.controls%>
В этой строке вы пытаетесь вызвать метод controls
для переменной, что не работает в соответствии с сообщением об ошибке; метод controls
не определен для этой переменной. Сообщение об ошибке также говорит вам, что переменная содержит экземпляр вашей модели управления.
Теперь вы назвали переменную building
, но она содержит экземпляр Control, что заставляет меня поверить, что вы каким-то образом поместили другое значение в переменную building
, чем предполагалось.
К сожалению, вы не показываете код, который присваивает значение переменной building
, поэтому я не могу приблизиться к реальному ответу для вас. Надеюсь, вышесказанного достаточно, чтобы привести вас к решению.