Этот код выдает ошибку:
Employee.first.company.employees
Текст ошибки:
NoMethodError (неопределенный метод `relation_delegate_class' для Company::Employee:Module)
Параллельно есть ссылки на этот код:
Employee.first.country.employees
И это работает нормально.
Я не могу понять, почему возникает ошибка для Company. Модели рядом. В них код компании и страны практически идентичен. Ссылки прямые, индексы тоже, без class_name и тому подобного.
class Employee < ApplicationRecord
# ...
belongs_to :company
belongs_to :country, optional: true
validates :company, presence: true
# ...
class Company < ApplicationRecord
has_many :employees, dependent: :destroy
# ...
class Country < ApplicationRecord
has_many :employees, dependent: :nullify
# ...
По каким причинам это может не сработать?
@Thanh Пожалуйста, уточните свой вопрос. Я не могу показать всю структуру.
Есть ли у вас какой-либо другой класс/модуль с именем Company, даже вложенный?
@DanielSindrestean В шаблонах используются только «Компании» (из ViewComponent, например: Companies::ListComponent.new). В противном случае я использую что-то вроде «CompanySomeWord».
@Colibri Достаточно просто таблиц «Сотрудник», «Компания», «Страна». Я просто хочу знать, как вы устанавливаете их отношения
@DanielSindrestean Вы были правы. Я нашел упоминание о «Компании», которое было скрыто от меня. Спасибо. Ох уж эта автозагрузка из Rails))
Пожалуйста, не возражаете, если я превращу это в ответ?
@DanielSindrestean Да, конечно.





NoMethodError (undefined method relation_delegate_class..) может быть вызвано наличием нескольких классов/модулей с одинаковым именем, даже если они находятся в разных папках (из-за того, как работает автозагрузка)
пожалуйста, покажите структуру/данные вашей БД