mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-13 23:37:47 +00:00
28 lines
708 B
Ruby
28 lines
708 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Spree
|
|
class ProductProperty < ActiveRecord::Base
|
|
belongs_to :product, class_name: "Spree::Product", touch: true
|
|
belongs_to :property, class_name: 'Spree::Property'
|
|
|
|
validates :property, presence: true
|
|
validates :value, length: { maximum: 255 }
|
|
|
|
default_scope -> { order("#{table_name}.position") }
|
|
|
|
# virtual attributes for use with AJAX completion stuff
|
|
def property_name
|
|
property&.name
|
|
end
|
|
|
|
def property_name=(name)
|
|
return if name.blank?
|
|
|
|
unless property = Property.find_by(name: name)
|
|
property = Property.create(name: name, presentation: name)
|
|
end
|
|
self.property = property
|
|
end
|
|
end
|
|
end
|