module Paranoia::Query
Public Instance Methods
only_deleted()
click to toggle source
# File lib/paranoia.rb, line 30 def only_deleted if paranoia_sentinel_value.nil? return with_deleted.where.not(paranoia_column => paranoia_sentinel_value) end # if paranoia_sentinel_value is not null, then it is possible that # some deleted rows will hold a null value in the paranoia column # these will not match != sentinel value because "NULL != value" is # NULL under the sql standard quoted_paranoia_column = connection.quote_column_name(paranoia_column) with_deleted.where("#{quoted_paranoia_column} IS NULL OR #{quoted_paranoia_column} != ?", paranoia_sentinel_value) end
Also aliased as: deleted
paranoid?()
click to toggle source
# File lib/paranoia.rb, line 21 def paranoid? ; true ; end
restore(id_or_ids, opts = {})
click to toggle source
# File lib/paranoia.rb, line 43 def restore(id_or_ids, opts = {}) ids = Array(id_or_ids).flatten any_object_instead_of_id = ids.any? { |id| ActiveRecord::Base === id } if any_object_instead_of_id ids.map! { |id| ActiveRecord::Base === id ? id.id : id } ActiveSupport::Deprecation.warn("You are passing an instance of ActiveRecord::Base to `restore`. " "Please pass the id of the object by calling `.id`") end ids.map { |id| only_deleted.find(id).restore!(opts) } end
with_deleted()
click to toggle source
# File lib/paranoia.rb, line 23 def with_deleted if ActiveRecord::VERSION::STRING >= "4.1" return unscope where: paranoia_column end all.tap { |x| x.default_scoped = false } end