Class: Effective::QbOrderItemsForm
- Inherits:
-
Object
- Object
- Effective::QbOrderItemsForm
- Includes:
- ActiveModel::Model
- Defined in:
- app/models/effective/qb_order_items_form.rb
Instance Attribute Summary collapse
-
#id ⇒ Object
Returns the value of attribute id.
-
#orders ⇒ Object
Returns the value of attribute orders.
Instance Method Summary collapse
-
#initialize(id:, orders:) ⇒ QbOrderItemsForm
constructor
A new instance of QbOrderItemsForm.
- #persisted? ⇒ Boolean
- #qb_order_items ⇒ Object
-
#qb_order_items_attributes=(qb_order_item_atts) ⇒ Object
This is required by SimpleForm and Rails for non-ActiveRecord nested attributes.
- #save ⇒ Object
- #to_param ⇒ Object
Constructor Details
#initialize(id:, orders:) ⇒ QbOrderItemsForm
Returns a new instance of QbOrderItemsForm.
9 10 11 12 |
# File 'app/models/effective/qb_order_items_form.rb', line 9 def initialize(id:, orders:) @id = id @orders = Array(orders) end |
Instance Attribute Details
#id ⇒ Object
Returns the value of attribute id.
7 8 9 |
# File 'app/models/effective/qb_order_items_form.rb', line 7 def id @id end |
#orders ⇒ Object
Returns the value of attribute orders.
7 8 9 |
# File 'app/models/effective/qb_order_items_form.rb', line 7 def orders @orders end |
Instance Method Details
#persisted? ⇒ Boolean
50 51 52 |
# File 'app/models/effective/qb_order_items_form.rb', line 50 def persisted? true end |
#qb_order_items ⇒ Object
14 15 16 |
# File 'app/models/effective/qb_order_items_form.rb', line 14 def qb_order_items @qb_order_items ||= orders.flat_map { |order| order.order_items.map { |oi| oi.qb_item_name; oi.qb_order_item } } end |
#qb_order_items_attributes=(qb_order_item_atts) ⇒ Object
This is required by SimpleForm and Rails for non-ActiveRecord nested attributes
19 20 21 22 23 24 25 26 |
# File 'app/models/effective/qb_order_items_form.rb', line 19 def qb_order_items_attributes=(qb_order_item_atts) qb_order_item_atts.each do |attributes| qb_order_item = qb_order_items.find { |qb_order_item| qb_order_item.order_item_id.to_s == attributes[:order_item_id] } raise "unable to find qb_order_item with order_item_id #{attributes[:order_item_id]}" unless qb_order_item.present? qb_order_item.attributes = attributes.except(:id, :order_item_id) end end |
#save ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'app/models/effective/qb_order_items_form.rb', line 28 def save qb_order_items.each { |qb_order_item| qb_order_item.valid? } return false unless qb_order_items.all? { |qb_order_item| qb_order_item.valid? } success = false Effective::QbOrderItem.transaction do begin qb_order_items.each { |qb_order_item| qb_order_item.save! } success = true rescue => e raise ActiveRecord::Rollback end end success end |
#to_param ⇒ Object
46 47 48 |
# File 'app/models/effective/qb_order_items_form.rb', line 46 def to_param id end |