创建时委托值抛出错误-Rails 5.2.2

时间:2019-06-26 21:14:33

标签: ruby-on-rails ruby-on-rails-5

我有一个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!

0 个答案:

没有答案