bugfix> ruby-on-rails > 投稿

私には2つのモデルがあります:

class Order < ApplicationRecord
  has_many :order_items, inverse_of: :order, dependent: :destroy
  after_update :update_qantity
  def update_quantity
   self.order_items.each do |oi|
    if oi.saved_change_to_quantity?
      #some logic
    end
  end
end

そして

class OrderItem < ApplicationRecord
  belongs_to :order, inverse_of: :order_items
end

さて、私はこれをレールコンソールから行うと:-

ord = Order.first  
ord.order_items.first.update_attributes(quantity: 101)
ord.save!

コントロールはupdate_quantityメソッド内に入りますが、saved_change_to_quantity? false(byebugでテスト済み)です。ネストされた属性を更新して、ifステートメント内に制御が入るようにする方法。