0

依存関係にある 2 つの Ruby on Rails モデル クラス A と B があり、一方を保存するときにもう一方を保存したいと考えています。

私の現在の解決策は、 ActiveRecordモデルの二重保存を回避する方法のような一時属性を使用することです? しかし、より良い方法はありますか?

class A < ActiveRecord::Base  
  has_many :b

  attr_writer :save_b_values

  def save_b_values
    return @save_b_values if defined? @save_b_values
    true
  end

  before_save do
    save_b_values = false

    if save_b_values
      b.each do |bi|
        bi.save!
      end
    end
  end

  after_save do
    save_b_values = true
  end
end

class B < ActiveRecord::Base
  belongs_to :a, autosave: true
end
4

0 に答える 0