31 lines
762 B
Ruby
31 lines
762 B
Ruby
class Tracker < ApplicationRecord
|
|
belongs_to :user, touch: true
|
|
|
|
delegate :name, :email, :name_and_email, to: :user
|
|
|
|
has_many :tracker_assignments, dependent: :destroy, class_name: "Budget::TrackerAssignment"
|
|
has_many :investments, through: :tracker_assignments, class_name: "Budget::Investment"
|
|
|
|
validates :user_id, presence: true, uniqueness: true
|
|
|
|
def description_or_email
|
|
description.presence || email
|
|
end
|
|
|
|
def description_or_name
|
|
description.presence || name
|
|
end
|
|
|
|
def assigned_investment_ids
|
|
investment_ids
|
|
end
|
|
|
|
def investments_by_heading(params, budget)
|
|
results = investments.by_budget(budget)
|
|
if params[:heading_id].present?
|
|
results = results.by_heading(params[:heading_id])
|
|
end
|
|
results
|
|
end
|
|
end
|