23 lines
639 B
Ruby
23 lines
639 B
Ruby
class ProductOrder
|
|
include SimplyStored::Couch
|
|
include ActiveModel::SerializerSupport
|
|
|
|
property :quantity, type: Fixnum
|
|
property :price, type: Float
|
|
property :product_name
|
|
property :product_variant
|
|
|
|
belongs_to :product
|
|
belongs_to :order
|
|
|
|
view :by_product_id, key: :product_id
|
|
view :by_order_id, key: :order_id
|
|
|
|
# Getter for product name. If a supplier deletes a product, that has product_orders, the product
|
|
# will become nil. This method should handle this case.
|
|
alias_method :direct_product_name, :product_name
|
|
def product_name
|
|
direct_product_name.presence || product.try(:name) || '[deleted]'
|
|
end
|
|
end
|