Module: Spree::AdjustmentSourceDecorator

Defined in:
app/models/concerns/spree/adjustment_source_decorator.rb

Instance Method Summary collapse

Instance Method Details

#create_unique_adjustment(order, adjustable) ⇒ Object

@gem-override spree_core-5.3.6/app/models/concerns/spree/adjustment_source.rb#create_unique_adjustment 並行リクエスト時の重複 adjustment 作成を防ぐため、order を排他ロックしてから 既存チェックと作成を実行する。これがないと、ブラウザ複数タブから同一 order に 同時にカート操作されたとき、already_adjusted? の SELECT が両リクエストで false を返し、同じ source の adjustment が二重に INSERT されてしまう。



9
10
11
# File 'app/models/concerns/spree/adjustment_source_decorator.rb', line 9

def create_unique_adjustment(order, adjustable)
  with_order_lock(order) { super }
end

#create_unique_adjustments(order, adjustables, &block) ⇒ Object

@gem-override spree_core-5.3.6/app/models/concerns/spree/adjustment_source.rb#create_unique_adjustments



15
16
17
# File 'app/models/concerns/spree/adjustment_source_decorator.rb', line 15

def create_unique_adjustments(order, adjustables, &block)
  with_order_lock(order) { super }
end