When `valuator_group` was `nil`, `[valuator_group&.investment_ids]` is evaluated to `nil`, and so we were adding an extra element to the array. We could add a `compact` call to the resulting array, but I find it easier to convert `nil` to an array using `to_a`.
25 lines
626 B
Ruby
25 lines
626 B
Ruby
class Valuator < ApplicationRecord
|
|
belongs_to :user, touch: true
|
|
belongs_to :valuator_group
|
|
|
|
delegate :name, :email, :name_and_email, to: :user
|
|
|
|
has_many :valuator_assignments, dependent: :destroy, class_name: "Budget::ValuatorAssignment"
|
|
has_many :investments, through: :valuator_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 + valuator_group&.investment_ids.to_a
|
|
end
|
|
|
|
end
|