現在のフィールドがデータベースで空でない場合にのみ、フィールドを空/nilに保存できないようにするカスタム検証関数を作成したいと考えています。検証関数でデータベース値 (古い値) にアクセスするにはどうすればよいですか? self.name_of_field を使用して新しい値にアクセスできます。
これは私が今持っているものです
validate :image_remote_url_change
def image_remote_url_change
if self.image_remote_url.blank? and self.image_remote_url_changed?
errors.add(:field, "can't be blank once set")
return false
end
end
現在、既存のオブジェクトを編集しようとすると、空の新しい値は受け入れられませんが、新しいオブジェクトを作成すると、古い値が設定されていないにもかかわらず、「一度設定すると空白にすることはできません」と表示されます。