我有一个与照片对象具有“has_many”关系的对象
has_many :photos, :foreign_key => 'person_id', :dependent => :destroy
和照片:
belongs_to :person, :foreign_key => 'person_id'
我想做什么。是在人员更新期间,如果用户使用相同的“种类”(这是照片的属性)向该人员上传了新照片,那么旧的类型将从数据库中删除
例如: 正在对具有上传照片的人进行更新 如果已经存在具有相同“person_id”和相同“种类”的照片记录 它将首先删除(不更新),然后只保存新记录
感谢
答案 0 :(得分:6)
你的逻辑很复杂,不能构建到框架中,你可以在控制器或模型中做你需要的,只需找到你想要替换的照片,如果它存在则将其销毁并创建一个新的
photo = person.photos.where(kind: "face").first
photo.destroy if photo
# procede with creating new photo object