レコードを削除した後に元に戻す機能を提供しようとしています。私はそれを複製するレコードを削除する前に、これを行うと、そのようにセッション中にそれを置くために:クローンレコードを保存できません
session[:undo] ||= []
session[:undo] << record.clone
は、しかし、私は後で
rec = session[:undo][-1]
rec.save!
を行う際にレコードが保存されていません。サーバーコンソールの出力には
(0.2ms) BEGIN
[paperclip] Saving attachments.
(0.2ms) COMMIT
と表示されていますが、保存されていると思うのですが、データベースにはありません。私は非常に混乱しています。何か案は?
これを行うより安定した方法は、データベースに「アクティブ」ブール値フラグを設定して、デフォルト値がtrueになるようにすることです。レコードを削除するときは、フラグをfalseに変更するだけです。元に戻すには、元に戻してください。 – coreyward
よかった。私はレコードにアクセスするたびにこのフラグをチェックしなければならないと思いますか?非アクティブなレコードを自動的に除外する方法はありますか? – providence
@providenceあなたのモデルで 'default_scope'(http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-default_scope)を使用して、非アクティブなレコードを除外することができます。ありがとう、 –