我无法将对象保存到相应的表中。
模型客户。我想确保它有一个关联的有效帐户:
has_one :account, dependent: :destroy
validates_presence_of :account
validates_associated :account
模型帐户属于客户,所以我想强制 customer_id 存在:
belongs_to :customer
validates :customer_id, presence: true
现在,我的问题是:我应该按什么顺序保存这些对象?这些验证是否有些不兼容?
因为,如果我先尝试保存客户,这是不可能的,我会得到
myCustomer.save.errors.messages
{:account=>["can't be blank"]}
显然,既然我说
validates_presence_of :account
在模型中。
但是,如果我先尝试保存帐户,请稍候!我也救不了!我有
验证:customer_id,存在:true
在我的帐户模型中,我还没有保存任何客户!
所以我也尝试过初始化帐户:
acc = Account.new(acc_attr: foo, acc_attr2: bar)
然后尝试像这样将其设置为客户
Customer.account = acc
但话又说回来,客户不会保存,因为 acc 无效,(因为它没有 customer_id 并且我在 Customer 模型中有 validates_associated :account)
那么,我是否必须放弃任一模型中的一个验证?有解决方法吗?
谢谢!