You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
educoder/app/models/library.rb

43 lines
1013 B

class Library < ApplicationRecord
include AASM
belongs_to :user
belongs_to :cover, class_name: 'Attachment', foreign_key: :cover_id, optional: true
has_many :library_applies, dependent: :delete_all
has_many :library_library_tags, dependent: :delete_all
has_many :library_tags, through: :library_library_tags
has_many :attachments, as: :container
has_one :praise_tread_cache, foreign_key: :object_id
validates :uuid, presence: true, uniqueness: true
aasm(:status) do
state :pending, initiali: true
state :processing
state :refused
state :published
event :submit do
transitions from: [:pending, :refused], to: :processing
end
event :refuse do
transitions from: :processing, to: :refused
end
event :publish do
transitions from: :processing, to: :published
end
end
def generate_uuid
uuid = Util::UUID.time_uuid
while Library.exists?(uuid: uuid)
uuid = Util::UUID.time_uuid
end
self.uuid = uuid
end
end