Ошибка создания делегированного значения при создании - Rails 5.2.2 - PullRequest
1 голос
/ 27 июня 2019

У меня есть Order, который является потомком User. Я хочу иметь возможность установить атрибут tax_exempt на User через мою форму create_quote. Я добавил следующих делегатов в мою Order модель:

class Order < ApplicationRecord
    belongs_to :user

    delegate :tax_exempt, to: :user, prefix: true
    delegate :tax_exempt=, to: :user, prefix: true
end

Когда я отправляю свою форму (при создании), я получаю следующую ошибку:

Module::DelegationError (Order#user_tax_exempt= delegated to user.tax_exempt=, but user is nil:

Я подтвердил и user_id не является nil и представлен в моих параметрах. Даже из моего контроллера, когда я заставляю пользователя с помощью следующего кода, я все равно получаю ту же ошибку:

order = User.first.orders.create(parameters)

Операция, однако, работает при редактировании. Я не понимаю, почему я не могу установить атрибут моего родителя User через делегата. Заранее спасибо.

Обновление

Следующий код выдает ту же ошибку из консоли rails:

User.first.orders.build(tax_exempt: true).save!

Пройдя еще один шаг и убедившись, что User не переопределен где-то по какой-то неизвестной причине, я попытался выполнить следующий код, который снова по-прежнему выдает ту же ошибку:

User.first.orders.build(tax_exempt: true, user_id: User.first.id).save!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...