У меня есть различные связанные модели в моем приложении. У меня есть настройка Draper для украшения ассоциаций при инициализации родительского класса.Rails Draper Gem повышение неопределенного метода для вложенной модели
У меня есть следующие классы:
Customer (has_many :accounts)
Account (belongs_to :customer && has_many :facilities && has_one :contact)
Contact (belongs_to :account)
Facility (belongs_to :account)
Я инициируют декоратора следующим образом:
@customer = Customer.find_by(:token => params[:token]).decorate
В моем account_decorator добавляется следующее:
decorates_association :contact
decorates_association :facilities
... и в моем Отделке клиентов У меня есть:
decorates_association :accounts
Проблема, с которой я столкнулся, заключается в том, что исключение неопределенного метода показано для любого метода, определенного в объекте_декораторе. Функция contact_decorator работает отлично. Я убедился, что мое сопоставление AR правильное, так что это не может быть так.
Любые предложения?
Возможно, существует некоторая проблема с декоратором 'Facility'. Вы пытались удалить ассоциации и просто создать экземпляр украшенного «Facility», просто чтобы это устранить? – Ninjarabbi
@Ninjarabbi, я протестировал экземпляр объекта на его собственном и использовал .decorate. Кажется, что это работает в этом случае, так как я могу получить доступ к методам FacilityDecorator – Herm
по внешнему виду, нет никакой разницы между 'contact' и' facility'. Трудно это понять, не видя всего кода. Я попытаюсь устранить факторы, изменив связь между 'account' и' contact', чтобы быть 'has_many', и посмотреть, все ли работает. Затем я попытаюсь воспроизвести части кода между этими двумя моделями, пока не найду, что делает работу «контакт» и «объект» не работает. – Ninjarabbi