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