add trashable concern on user
This commit is contained in:
21
app/models/concerns/trashable.rb
Normal file
21
app/models/concerns/trashable.rb
Normal file
@@ -0,0 +1,21 @@
|
||||
module Trashable
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
default_scope { where(deleted_at: nil) }
|
||||
end
|
||||
|
||||
module ClassMethods
|
||||
def trashed
|
||||
self.unscoped.where(self.arel_table[:deleted_at].not_eq(nil))
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
update_column :deleted_at, Time.now
|
||||
end
|
||||
|
||||
def recover
|
||||
update_attribute :deleted_at, nil
|
||||
end
|
||||
end
|
||||
@@ -4,6 +4,7 @@
|
||||
#
|
||||
# id :bigint not null, primary key
|
||||
# avatar_url :string
|
||||
# deleted_at :datetime
|
||||
# email :string default(""), not null
|
||||
# encrypted_password :string default(""), not null
|
||||
# name :string not null
|
||||
@@ -20,6 +21,7 @@
|
||||
# index_users_on_reset_password_token (reset_password_token) UNIQUE
|
||||
#
|
||||
class User < ApplicationRecord
|
||||
include Trashable
|
||||
extend Enumerize
|
||||
|
||||
devise :database_authenticatable,
|
||||
@@ -38,7 +40,6 @@ class User < ApplicationRecord
|
||||
|
||||
before_validation :set_random_password, on: :create
|
||||
|
||||
|
||||
roles.values.each do |role|
|
||||
define_method "#{role}?" do
|
||||
roles.include?(role)
|
||||
|
||||
Reference in New Issue
Block a user