diff --git a/app/models/metadata_has_one.rb b/app/models/metadata_has_one.rb index 38911e1d..686afc6e 100644 --- a/app/models/metadata_has_one.rb +++ b/app/models/metadata_has_one.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class MetadataHasOne < MetadataHasMany +class MetadataHasOne < MetadataBelongsTo def had_one return default_value if value_was.blank? @@ -13,11 +13,18 @@ class MetadataHasOne < MetadataHasMany posts.find(uuid: value) end - def had_many; end - def has_many; end + def belonged_to; end + def belongs_to; end def save - super + # XXX: DRY + if !changed? + self[:value] = document_value + + return true + end + + self[:value] = sanitize value return true unless changed? return true unless inverse? @@ -31,4 +38,8 @@ class MetadataHasOne < MetadataHasMany def related_methods @related_methods ||= %i[has_one had_one].freeze end + + def indexable_values + has_one&.title&.value + end end