Sha256: 63a7e34a31d808c462145c3c7e6bb2b3499c0fcfe9626146ad8702f14b4d292f

Contents?: true

Size: 945 Bytes

Versions: 3

Compression:

Stored size: 945 Bytes

Contents

##
# Categorizing 是分类(category)和被分类项(categorized)之间的关联关系。

class Unidom::Category::Categorizing < Unidom::Category::ApplicationRecord

  self.table_name = 'unidom_categorizings'

  include Unidom::Common::Concerns::ModelExtension

  belongs_to :category,    class_name:  'Unidom::Category::Category'
  belongs_to :categorized, polymorphic: true

  scope :category_is,    ->(category)    { where category_id: to_id(category) }
  scope :categorized_is, ->(categorized) { where categorized: categorized     }

  def self.categorize!(categorized, into: nil, at: Time.now)

    assert_present! :categorized, categorized
    assert_present! :into,        into
    assert_present! :at,          at

    categorized_is(categorized).category_is(into).valid_at.alive.first_or_create! elemental: true, opened_at: at

  end

end unless Unidom::Common::Neglection.namespace_neglected? 'Unidom::Category::Categorizing'

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
unidom-category-2.0 app/models/unidom/category/categorizing.rb
unidom-category-1.6.8 app/models/unidom/category/categorizing.rb
unidom-category-1.6.7 app/models/unidom/category/categorizing.rb