Class: PolyMetadatum
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- PolyMetadatum
- Defined in:
- app/models/poly_metadatum.rb
Overview
A polymetadatum is a key value pair store. It is set up such that it can be associated with multiple different models (ie. a polymorphic relationship).
It can be linked to any model that has the reverse association set up. i.e. add this association line to the model: has_many :poly_metadata, as: :metadatable, dependent: :destroy and this line to the v2 api resource (if api access needed): has_many :poly_metadata, as: :metadatable, class_name: 'PolyMetadatum'
See Request model and associated api v2 resource for an example of how to use this.
Instance Method Summary collapse
-
#to_h ⇒ Object
Methods.
Methods inherited from ApplicationRecord
alias_association, convert_labware_to_receptacle_for, find_by_id_or_name, find_by_id_or_name!
Methods included from Squishify
Instance Method Details
#to_h ⇒ Object
Methods
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'app/models/poly_metadatum.rb', line 34 do # NOTE: The following attribute is not required for Microarray Genotyping. # I think this might be broken and suggests that there should be separate classes for project: one for # next-gen sequencing that includes this attribute in it's metadata, and one for microarray genotyping # that doesn't. include ProjectManager::Associations include BudgetDivision::Associations custom_attribute(:project_cost_code, required: true) custom_attribute(:funding_comments) custom_attribute(:collaborators) custom_attribute(:external_funding_source) custom_attribute(:sequencing_budget_cost_centre) custom_attribute(:project_funding_model, in: PROJECT_FUNDING_MODELS) custom_attribute(:gt_committee_tracking_id) before_validation do |record| record.project_cost_code = nil if record.project_cost_code.blank? record.project_funding_model = nil if record.project_funding_model.blank? end end |