En basit yol, geçişler yoluyla doğrudan Ürün modeline özellik eklemek olabilir. Doğrulayıcı modeller için Spree içerisinde tercih edilen model, dekoratörlerin kullanımıyla doğrulamalar eklenebilir.
# in app/models/product_decorator.rb
Product.class_eval do
validates :some_field, :presence => true
end
Genişletilmiş alanlarınız için ikincil bir model oluşturmak başka bir seçenektir. Belki de ProductExtension
# in app/models/product_extension.rb
class ProductExtension < ActiveRecord::Base
belongs_to :product
validates :some_field, :presence => true
end
# in app/models/product_decorator.rb
Product.class_eval do
has_one :product_extension
accepts_nested_attributes_for :product_extension
delegate :some_field, :to => :product_extension
end
Daha sonra ürün oluşturma formlarınızda bu alanları bir fields_for ile sağlayabilirsiniz. Bununla ilgili bir uyarının, uzantı kullanıma girmeden önce oluşturulan Ürün modeline sahip olmanız gerekecek. Ürün kontrol cihazlarında bazı ekstra mantıklarla harekete geçebilirsiniz.