【发布时间】:2020-10-23 23:59:39
【问题描述】:
我的表单中有嵌套资源,其中一个有一个名为“value_paid”的字段,其结构如下:“$ 2”,但因为我的 value_paid 字段在数据库中是十进制类型,所以我需要在保存字段的时候,只保存value_paid字段中所有嵌套资源的数字字符
我正在应用相同类型的验证,但对于主字段,它将是这样的:
def payment_params
final_params = params.require(:payment).permit(:payment, :day, :comments, :billing_id, payment_details_attributes: [:id, :value_paid, :voucher, :date_voucher, :observation, :payment_method_id, :payment_id, :paid_destination, :_destroy])
final_params['payment'] = final_params['payment'].scan(/[.0-9]/).join().to_f
final_params
end
如何将其应用于嵌套属性 payment_details_attributes 的每个 value_paid 字段?
【问题讨论】:
-
在表单中进行更改以仅采用整数值,否则您可以在子模型中编写 before_save 回调来修改值将解决您的问题。
-
我建议使用 before_validation 回调而不是 before_save。因为该字段是整数,所以必须对其进行数值验证。
标签: ruby-on-rails ruby ruby-on-rails-4