scinote-web/app/models/sample_my_module.rb

26 lines
798 B
Ruby
Raw Normal View History

2016-02-12 23:52:43 +08:00
class SampleMyModule < ActiveRecord::Base
2016-07-21 19:11:15 +08:00
after_create :increment_nr_of_module_samples
after_destroy :decrement_nr_of_module_samples
2016-02-12 23:52:43 +08:00
validates :sample, :my_module, presence: true
# One sample can only be assigned once to a specific module
validates_uniqueness_of :sample_id, :scope => :my_module_id
belongs_to :assigned_by, foreign_key: 'assigned_by_id', class_name: 'User'
belongs_to :sample,
2016-07-21 19:11:15 +08:00
inverse_of: :sample_my_modules
2016-02-12 23:52:43 +08:00
belongs_to :my_module,
2016-07-21 19:11:15 +08:00
inverse_of: :sample_my_modules
def increment_nr_of_module_samples
my_module.increment!(:nr_of_assigned_samples)
sample.increment!(:nr_of_modules_assigned_to)
end
def decrement_nr_of_module_samples
my_module.decrement!(:nr_of_assigned_samples)
sample.decrement!(:nr_of_modules_assigned_to)
end
2016-02-12 23:52:43 +08:00
end