Sha256: 8925410fec33677420f5ac0878b669e8ee0fcf1f947dda4fccbd011e1245750d
Contents?: true
Size: 1.31 KB
Versions: 1
Compression:
Stored size: 1.31 KB
Contents
class Unico::SimilarityControl < Unico::Model extend EnumerateIt self.abstract_class = true self.table_name = :unico_similarity_controls has_many :similarity_control_items, dependent: :destroy has_many :similarity_control_tables, dependent: :destroy has_enumeration_for :table_name, with: SimilarityTable has_enumeration_for :job_status, create_helpers: true accepts_nested_attributes_for :similarity_control_items validates :table_name, :column_name, :similarity, presence: true validates :similarity, numericality: { greater_than: 0, less_than: 101 } validates :job_status, presence: true before_create :set_reference_column orderize def to_s "#{table_name} / #{column_name}" end def similarity_percent similarity / 100.00 end def can_edit? similarity_control_tables.blank? end def agglutinated? !can_edit? end def extra_info case table_name when SimilarityTable::UNICO_STREETS then 'Bairros' end end def mark_as_processed! update_column(:job_status, JobStatus::PROCESSED) end def mark_as_error_processing! update_column(:job_status, JobStatus::ERROR) end private def set_reference_column # unico_street_types >> street_type_id self.reference_column = table_name.split('_')[1..10].join('_').singularize + '_id' end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
unico-training-7.8.0 | app/models/unico/similarity_control.rb |