Class: ObservationMatrixRowItem::Dynamic::Tag
- Inherits:
-
ObservationMatrixRowItem::Dynamic
- Object
- ActiveRecord::Base
- ApplicationRecord
- ObservationMatrixRowItem
- ObservationMatrixRowItem::Dynamic
- ObservationMatrixRowItem::Dynamic::Tag
- Defined in:
- app/models/observation_matrix_row_item/dynamic/tag.rb
Constant Summary
Constants included from SoftValidation
SoftValidation::ANCESTORS_WITH_SOFT_VALIDATIONS
Instance Attribute Summary
Attributes inherited from ObservationMatrixRowItem
#observation_matrix_id, #observation_object_id, #observation_object_type, #position
Instance Method Summary collapse
- #keyword_is_unique ⇒ Object private
- #matrix_row_item_object ⇒ Object
- #observation_objects ⇒ Object
- #value_of_observation_object_type ⇒ Object private
Methods inherited from ObservationMatrixRowItem::Dynamic
Methods inherited from ObservationMatrixRowItem
batch_create, batch_create_from_pinboard, batch_create_from_tags, #cleanup_matrix_rows, #cleanup_single_matrix_row, create_for_pinboard_items, create_for_tags, #decrement_matrix_row_reference_count, #find_or_build_row, human_name, #increment_matrix_row_reference_count, #object_is?, subclass_attributes, #update_matrix_rows, #update_single_matrix_row
Methods included from SoftValidation
#clear_soft_validations, #fix_for, #fix_soft_validations, #soft_fixed?, #soft_valid?, #soft_validate, #soft_validated?, #soft_validations, #soft_validators
Methods included from Shared::IsData
#errors_excepting, #full_error_messages_excepting, #identical, #is_community?, #is_destroyable?, #is_editable?, #is_in_use?, #is_in_users_projects?, #metamorphosize, #similar
Methods included from Shared::Notes
#concatenated_notes_string, #reject_notes
Methods included from Shared::Tags
#reject_tags, #tag_with, #tagged?, #tagged_with?
Methods included from Shared::Identifiers
#dwc_occurrence_id, #identified?, #next_by_identifier, #previous_by_identifier, #reject_identifiers, #uri, #uuid
Methods included from Shared::Citations
#cited?, #mark_citations_for_destruction, #nomenclature_date, #origin_citation_source_id, #reject_citations, #requires_citation?, #sources_by_topic_id
Methods included from Housekeeping
#has_polymorphic_relationship?
Methods inherited from ApplicationRecord
Instance Method Details
#keyword_is_unique ⇒ Object (private)
20 21 22 23 24 25 |
# File 'app/models/observation_matrix_row_item/dynamic/tag.rb', line 20 def keyword_is_unique errors.add(:observation_object, 'is already taken') if ObservationMatrixRowItem::Dynamic::Tag.where.not(id: id).where( observation_object: observation_object, observation_matrix_id: observation_matrix_id ).any? end |
#matrix_row_item_object ⇒ Object
14 15 16 |
# File 'app/models/observation_matrix_row_item/dynamic/tag.rb', line 14 def matrix_row_item_object controlled_vocabulary_term end |
#observation_objects ⇒ Object
6 7 8 9 10 11 12 |
# File 'app/models/observation_matrix_row_item/dynamic/tag.rb', line 6 def observation_objects d = [] OBSERVABLE_TYPES.each do |t| # Currently assumes all types are may be tagged, could do a simple check d += t.safe_constantize.joins(:tags).where(tags: {keyword: observation_object}).to_a end d end |
#value_of_observation_object_type ⇒ Object (private)
27 28 29 |
# File 'app/models/observation_matrix_row_item/dynamic/tag.rb', line 27 def value_of_observation_object_type errors.add(:observation_object) if observation_object_type != 'ControlledVocabularyTerm' end |