Sha256: b25626d7c7f8951475c4d27c29cc6ba60a62220c179184d3b2931abba2979ba5
Contents?: true
Size: 1.66 KB
Versions: 2
Compression:
Stored size: 1.66 KB
Contents
require 'subj_models/concerns/comprising_external_id' require 'subj_models/concerns/shared_scopes' module SubjModels module BrandModule def self.included(including_class) including_class.class_eval do include SubjModels::SharedScopes include SubjModels::ComprisingExternalId has_many :brand_lines, dependent: :destroy has_many :nomenclatures has_many :videos has_many :events has_and_belongs_to_many :users has_and_belongs_to_many :actions belongs_to :content_block1, class_name: "ContentBlock" belongs_to :content_block2, class_name: "ContentBlock" belongs_to :content_block3, class_name: "ContentBlock" belongs_to :document_file before_validation :set_first_letter, if: :name_changed? validates :name, presence: true scope :in_index_list, -> condition { where(show_on_index: condition) } scope :in_recommended_list, -> condition { where(is_recommended: condition) } scope :category_id, -> (category_id) do return all if category_id.blank? joins(brand_lines: [{ nomenclatures: :category}]).where('categories.id' => category_id) end scope :by_first_letters, -> (by_first_letters) do unless by_first_letters.blank? where(first_letter: by_first_letters) end end end end def to_s name end private def self.searchable_fields [:name, :hidden_name] end def order_params [ :order_by_name, :order_by_popularity ] end def set_first_letter self.first_letter = name[0].downcase end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
subj_models-0.5.3 | lib/subj_models/brand.rb |
subj_models-0.5.2 | lib/subj_models/brand.rb |