5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/discerner/methods/models/parameter_value.rb', line 5
def self.included(base)
base.send :include, SoftDelete
base.send :belongs_to, :parameter, inverse_of: :parameter_values
base.send :has_many, :search_parameter_values, inverse_of: :parameter_value, dependent: :destroy
base.send :has_one, :parameter_value_categorization, inverse_of: :parameter_value, dependent: :destroy
base.send :has_one, :parameter_value_category, :through=> :parameter_value_categorization
base.send(:scope, :ordered_by_name, -> { base.order('discerner_parameter_values.name ASC') })
base.send(:scope, :ordered_by_parameter_and_name, -> { base.order('discerner_parameter_values.parameter_id ASC, discerner_parameter_values.name ASC') })
base.send :validates, :parameter, presence: true
base.send :validates, :search_value, length: { maximum: 1000 }, uniqueness: {scope: :parameter_id, message: "for parameter value has already been taken"}
base.send :validates, :name, presence: true, length: { maximum: 1000 }
base.send :validate, :parameter_category_belongs_to_parameter
base.send :after_commit, :create_search_parameter_values, on: :create
base.send :after_commit, :update_search_parameter_values, on: :update, if: Proc.new { |record| record.previous_changes.include?('deleted_at') }
base.send :scope, :categorized, -> {base.joins(:parameter_value_category)}
base.send :scope, :uncategorized, -> {base.includes(:parameter_value_category).where(discerner_parameter_value_categories: {name: nil})}
end
|