2

写真オブジェクトと「has_many」関係にあるオブジェクトの人物がいます

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

そして写真上:

belongs_to :person, :foreign_key => 'person_id'

私がしたいこと。人の更新中です。ユーザーが同じ「種類」(写真の属性)を持つ新しい写真をその人にアップロードした場合、古い種類はデータベースから削除されます

例: 種類が「顔」のアップロードされた写真を持つ人に対して更新が実行されている場合、同じ「person_id」と同じ「種類」の写真のレコードが既に存在する場合、最初に削除され (更新されず)、次に、新しいレコードが保存されます

ありがとう

4

1 に答える 1

6

ロジックはフレームワークに組み込まれないほど複雑です。コントローラーまたはモデルのいずれかで必要なことを実行できます。置き換えたい写真を見つけて、存在する場合は破棄して、新しい写真を作成します。

photo = person.photos.where(kind: "face").first
photo.destroy if photo

# procede with creating new photo object
于 2013-01-26T10:06:31.497 に答える