Class: HTM::Models::NodeTag

Inherits:
Object
  • Object
show all
Defined in:
lib/htm/models/node_tag.rb

Overview

NodeTag model - join table for many-to-many relationship between nodes and tags

Instance Method Summary collapse

Instance Method Details

#before_createObject

Hooks



53
54
55
56
# File 'lib/htm/models/node_tag.rb', line 53

def before_create
  self.created_at ||= Time.now
  super
end

#deleted?Boolean

Check if entry is soft-deleted

Returns:

  • (Boolean)

    true if deleted_at is set



80
81
82
# File 'lib/htm/models/node_tag.rb', line 80

def deleted?
  !deleted_at.nil?
end

#restore!Boolean

Restore a soft-deleted entry

Returns:

  • (Boolean)

    true if restored successfully



71
72
73
74
# File 'lib/htm/models/node_tag.rb', line 71

def restore!
  update(deleted_at: nil)
  true
end

#soft_delete!Boolean

Soft delete - mark as deleted without removing from database

Returns:

  • (Boolean)

    true if soft deleted successfully



62
63
64
65
# File 'lib/htm/models/node_tag.rb', line 62

def soft_delete!
  update(deleted_at: Time.now)
  true
end

#validateObject

Validations



16
17
18
19
20
# File 'lib/htm/models/node_tag.rb', line 16

def validate
  super
  validates_presence %i[node_id tag_id]
  validates_unique %i[node_id tag_id], message: "already associated with this node"
end