# frozen_string_literal: true class MetadataHasOne < MetadataHasMany def had_one return default_value if value_was.blank? posts.find(uuid: value) end def has_one return default_value if value.blank? posts.find(uuid: value) end def had_many; end def has_many; end def save super return true unless changed? return true unless inverse? had_one&.value = nil has_one&.value = post.uuid.value true end def related_methods @related_methods ||= %i[has_one had_one].freeze end end