1
0
This repository has been archived on 2023-12-07. You can view files and clone it, but cannot push or open issues or pull requests.
2020-06-21 02:48:32 +02:00

15 lines
726 B
Ruby

class Target < ActiveRecord::Base
belongs_to :goal, inverse_of: :targets
belongs_to :item, polymorphic: true, inverse_of: :targets
has_many :thresholds, as: :registry, inverse_of: :target, dependent: :destroy,
validate: true
validates :thresholds, presence: true
accepts_nested_attributes_for :thresholds, allow_destroy: true,
reject_if: proc { |attrs| attrs['quantity_id'].blank? && attrs['value'].blank? }
# TODO: validate thresholds count according to condition type
validates :condition, inclusion: {in: [:<, :<=, :>, :>=, :==]}
validates :scope, inclusion: {in: [:day], if: -> { thresholds.first.domain == :diet }}
validates :effective_from, presence: {unless: goal?}, absence: {if: goal?}
end