想知道是否有一種簡單的方法通過更新數據庫字段來安靜地刪除條目,而不是從數據庫中刪除條目?Rails:按數據庫字段刪除(刪除= 1)而不是從數據庫中刪除?
具體來說,只要能運行RESTful「delete」函數,我想觸發「deleted = 1」而不是「drop from database」。
讚賞任何想法...
想知道是否有一種簡單的方法通過更新數據庫字段來安靜地刪除條目,而不是從數據庫中刪除條目?Rails:按數據庫字段刪除(刪除= 1)而不是從數據庫中刪除?
具體來說,只要能運行RESTful「delete」函數,我想觸發「deleted = 1」而不是「drop from database」。
讚賞任何想法...
我不是專家,但我可能會在控制器上創建一個destroy
方法和實現所需bevahior那裏。
我這樣做是爲了我不想銷燬的東西。許多應用程序都爲用戶執行此操作,因此它們不會破壞信息,但會真正禁用該帳戶。
rails g migration add_deleted_boolean_to_model
db:migrate
第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中,也許有人會編輯。
像一個布爾屬性標記的屬性,所以它存在? – s84 2011-03-22 00:43:13
是的,確切地說。 :-) – PlankTon 2011-03-22 00:46:22