Sha256: 53f15fae403faa160676f4668943b071d50b846f4413c22dbdb15e26be3f3b6d

Contents?: true

Size: 747 Bytes

Versions: 3

Compression:

Stored size: 747 Bytes

Contents

class TbCommerce::Option < ActiveRecord::Base
  self.table_name = 'tb_commerce_options'

  scope :ordered, ->{ order(:sort_order => :asc, :value => :asc) }

  validates :value, :option_set, :presence => true
  before_save :set_sort_order

  belongs_to :option_set, :inverse_of => :options, :foreign_key => :tb_commerce_option_set_id
  has_many :product_sku_options, :dependent => :destroy, :inverse_of => :options, :foreign_key => :tb_commerce_option_id

  def label
    return option_set.name
  end

private

  def set_sort_order
    if sort_order.blank?
      previous_sort = TbCommerce::Option.where(:tb_commerce_option_set_id => tb_commerce_option_set_id).maximum(:sort_order) || 0
      self.sort_order = previous_sort + 1
    end
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
tb_commerce-0.0.4 app/models/tb_commerce/option.rb
tb_commerce-0.0.3 app/models/tb_commerce/option.rb
tb_commerce-0.0.2 app/models/tb_commerce/option.rb