rails,如果在创建新记录之前存在具有相同列值的记录,请删除记录



>我有一个对象人,它与照片对象有"has_many"关系

has_many :photos, :foreign_key => 'person_id', :dependent => :destroy

在照片上:

belongs_to :person, :foreign_key => 'person_id'

我想做的是在人员更新期间,如果用户将新照片上传到具有相同"种类"(这是照片的属性)的人,那么旧照片将从数据库中删除

例如:正在对上传带有亲切"脸"的照片的人进行更新如果照片记录已经存在具有相同的"person_id"和相同的"种类"它将首先被删除(不更新),然后只保存新记录

谢谢

你的逻辑足够复杂,不能内置到框架中,你可以在控制器或模型中做你需要做的事情,只需找到你想要替换的照片,如果存在,就销毁它并创建一个新的

photo = person.photos.where(kind: "face").first
photo.destroy if photo
# procede with creating new photo object

相关内容

  • 没有找到相关文章

最新更新