微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Rails 6 嵌套属性,Uniquness 验证在销毁记录上失败

如何解决Rails 6 嵌套属性,Uniquness 验证在销毁记录上失败

我在验证嵌套属性的唯一性时遇到问题。我有 2 个模型

#model : CompanyStore
class CompanyStore < ApplicationRecord
   has_many :company_stores_brands,dependent: :destroy
   accepts_nested_attributes_for :company_stores_brands,allow_destroy: true
end


class CompanyStoreBrand < ApplicationRecord
  validates_uniqueness_of :brand_id
end

brand_id 对于 CompanyStoreBrand 应该是唯一的。如果我从一家商店删除品牌并将其分配给另一家商店,则会引发异常,因为它没有被销毁。以下是我发送的参数

    "company_stores_attributes"=>[
{"id"=>1,"store_id"=>446,"company_stores_brands_attributes"=>[{"id"=>1,"_destroy"=>1,"brand_id"=>69258}]},{"id"=>3,"store_id"=>472,"company_stores_brands_attributes"=>[{"brand_id"=>69258}]}]

params.require(:company).permit(company_stores_attributes: [:id,:store_id,:_destroy,{ company_stores_brands_attributes: %i[id brand_id _destroy] }])

我在stackoverflow上看到了很多解决方案,但其中一些效率低下或者不支持此标准。有没有其他方法可以实现这一目标?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。