Мисля, че е важно да има метод „отмяна“ като gmail, когато се унищожават записи, вместо да се показва досаден изскачащ прозорец, който казва „Сигурни ли сте?".
Начинът, по който внедрих това, е да имам колона с клеймо за време "deleted_at" в модела, която получава клеймо за време, когато се извика методът destroy
def destroy
@foo = Foo.find(params[:id])
@foo.update_attribute(:deleted_at, Time.now)
...
end
За връщане/отмяна просто ще задам същата колона на нула
def revert
@foo = Foo.find(params[:id])
@foo.update_attribute(:deleted_at, nil)
...
end
Просто ще трябва да добавя условие за филтриране на "изтритите" foos, когато извикам метода за намиране. Може би задайте cron или фонова задача, за да унищожите наистина "изтритите" foos след известно време.
Работи за мен и е лесен за внедряване, но съм любопитен дали има по-добър начин за внедряване на тази функция? Може би има плъгин или скъпоценен камък, който предоставя това, за което не знам?