我有一个has_many关联 b/wa 产品和价格表。
class product < ApplicationRecord
has_many :prices, as: :pricing
accepts_nested_attributes_for :prices
end
class Price < ApplicationRecord
belongs_to :pricing, polymorphic: true
validates_uniqueness_of :pricing_interval, scope: [:interval_count, :pricing_type, :pricing_id], message: "can't be repeated"
end
正如模型所述,我从前端接受n 个价格的嵌套属性,并将它们隐式保存在父记录中。
但是每当出现唯一性验证错误时,即使用户从前端更改了值,活动记录也会继续抛出验证错误,除非最后一条记录的值(在一系列 id 中)从前端更改.
据我了解,活动记录以某种方式记住了那些在第一学期(回滚之前)成功更新的子记录,这就是为什么即使用户更改了它们的值,它也会继续抛出唯一性验证错误。