У меня есть следующая Project
модель:
class Project < ApplicationRecord
belongs_to :manager,
class_name: 'User'
has_many :memberships,
dependent: :destroy
has_one :technician_membership, -> { technicians }, class_name: 'Membership'
has_one :technician, through: :technician_membership, class_name: 'User', source: :user
(...)
end
Я хотел бы создать уведомление, если для проекта назначен новый техник. Я борюсь с тем, чтобы знать, изменился ли техник при сохранении.
Я надеялся этот SO поток решит мою проблему, но, к сожалению, это не так.
project.technician
=> nil
project.technician = User.find 4
=> #<User id: 4, ...>
project.technician.changed?
=> false
project.technician_changed?
=> false
Как лучше всего проверить, была ли создана / обновлена ассоциация?