У меня есть 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!