使用新属性值验证before_update

时间:2017-02-16 13:05:21

标签: ruby-on-rails ruby validation nested-forms nested-attributes

在我的项目中,我有一个名为PaymentCondition的模型,另一个名为PaymentPortionPaymentCondition has_many payment_portionsPaymentPortion belongs_to payment_condition

当我创建 new PaymentCondition时,我会使用此方法创建 n payment_portions n 来自:amount的{​​{1}}属性的值。

例如,如果我使用PaymentCondition创建新的PaymentCondition,我就会有2 amount: 2

到目前为止,非常好。

我的问题:

我在此视图中使用嵌套表单,因此我可以一次编辑所有内容。

payment_portions有一个名为PaymentCondition的属性。

catchments有一个名为PaymentPortion的属性。

提交此表单之前,我想检查catchment总和是否等于PaymentPortion.catchment。如果没有,我必须提出错误。

就目前而言,在保存之前我无法获得PaymentCondition.catchments的新值...

我在PaymentCondition内执行此操作:

payment_conditions_controller

使用 sum(),我只获取数据库中的值。我需要的是正在发送的值......

有办法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

可能直接在控制器上工作是一种选择吗?您可以使用'build'或'first_or_initialize'等方法来获取\ create AR对象。然后只需在控制器中验证它们并在必要时保存数据。