0

我有 3 张桌子:

profiles, users, payment_details

现在,在models/user.rb我有以下内容:

has_one :profile, :dependent => :destroy
has_one :payment_detail, :dependent => :destroy

models/profile.rb我有:

has_one :payment_detail, :through => :user

models/payment_details.rb我有:

has_one :profile, :through => :user

然后我有一个:profile带有:payment_details嵌套表单的表单。

由于某种原因,使用from而不是from:payment_details获取:user_id更新:id:profiles:user_id:profiles

4

1 回答 1

1

根据文档,关联的行为accepts_nested_attributes_for似乎没有明确定义:through。这种关系通常被认为是直接的亲子关系,因此您会看到这样的奇怪行为也就不足为奇了。

您应该通过User模型处理表单,接受模型的属性PaymentDetail,或者以某种方式组合您的模型。我很少发现使用关联很有用has_one,因为维护它们的成本往往超过收益,但这始终取决于您的用例。如果你没有太多的列,你可能想结合UserProfile也许与PaymentDetail来简化你的代码。

于 2012-11-22T18:06:06.187 回答