Я делаю это для вещей, которые не хочу разрушать.Многие приложения делают это для пользователей, поэтому они не уничтожают информацию, а действительно отключают учетную запись.
rails g migration add_deleted_boolean_to_model
- добавьте код из части 2 в миграцию
- rake
db:migrate
- и код из части 3 в контроллер
часть 2 - в вашем файле миграции:
add_column :modle_name, :deleted, :boolean, :default => false
Тогда rake db:migrate
Часть 3 - В вашем контроллере:
def destroy
@object = Model.find(params[:id)
@object.update_attribute(:deleted, true)
end
def index
@objects = Object.find(:all, :conditions => ['deleted=?', false])
end
def show
@object = Model.find(params[:id)
@object = nil if @object.deleted
flash[:notice] = "Sorry that was deleted; contact admin if you want it resated"
end
Имейте в виду, что условия поиска не являются rails3, возможно, кто-то отредактирует это.