Class: Railspress::ContentGroup

Inherits:
ApplicationRecord show all
Includes:
SoftDeletable
Defined in:
app/models/railspress/content_group.rb

Instance Method Summary collapse

Methods included from SoftDeletable

#deleted?, #restore

Instance Method Details

#authorObject



14
15
16
17
# File 'app/models/railspress/content_group.rb', line 14

def author
  return nil unless author_id.present? && Railspress.authors_enabled?
  Railspress.author_class.find_by(id: author_id)
end

#author=(user) ⇒ Object



19
20
21
# File 'app/models/railspress/content_group.rb', line 19

def author=(user)
  self.author_id = user&.id
end

#element_countObject



23
24
25
# File 'app/models/railspress/content_group.rb', line 23

def element_count
  content_elements.active.count
end

#soft_deleteObject



27
28
29
30
31
32
33
34
35
36
37
# File 'app/models/railspress/content_group.rb', line 27

def soft_delete
  if content_elements.active.where(required: true).exists?
    errors.add(:base, "Cannot delete group containing required content elements")
    false
  else
    transaction do
      content_elements.each(&:soft_delete)
      update!(deleted_at: Time.current)
    end
  end
end