RyanofWoods/rails-react-swedish-birds

View on GitHub
app/models/observation.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
class Observation < ApplicationRecord
  validates :species, uniqueness: { scope: :user, message: 'can only have one observation per user.' }
  validates :observed_at, presence: { message: 'must be a Date or zero.' }

  belongs_to :species
  belongs_to :user

  before_save :nullify_blank_notes, :format_unknown_observed_at

  UNKNOWN_OBSERVED_AT_VALUE = 0

  private

  def nullify_blank_notes
    self.note = note.presence
  end

  def format_unknown_observed_at
    self.observed_at = nil if observed_at == UNKNOWN_OBSERVED_AT_VALUE
  end
end