2017-06-23 21:19:08 +08:00
|
|
|
class ProtocolProtocolKeyword < ApplicationRecord
|
2016-07-21 19:11:15 +08:00
|
|
|
after_create :increment_protocols_count
|
|
|
|
after_destroy :decrement_protocols_count
|
|
|
|
|
|
|
|
validates :protocol, presence: true
|
|
|
|
validates :protocol_keyword, presence: true
|
|
|
|
|
2017-06-28 21:21:32 +08:00
|
|
|
belongs_to :protocol, inverse_of: :protocol_protocol_keywords, optional: true
|
|
|
|
belongs_to :protocol_keyword,
|
|
|
|
inverse_of: :protocol_protocol_keywords,
|
|
|
|
optional: true
|
2016-07-21 19:11:15 +08:00
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def increment_protocols_count
|
|
|
|
self.protocol_keyword.increment!(:nr_of_protocols)
|
|
|
|
end
|
|
|
|
|
|
|
|
def decrement_protocols_count
|
|
|
|
self.protocol_keyword.decrement!(:nr_of_protocols)
|
|
|
|
if self.protocol_keyword.nr_of_protocols == 0 then
|
|
|
|
self.protocol_keyword.destroy
|
|
|
|
end
|
|
|
|
end
|
2017-06-23 21:19:08 +08:00
|
|
|
end
|