0

コントローラーの作成アクションで、SQL クエリを使用して親レコードとすべての子レコードを挿入しています。しかし、必要な after_save コールバックはトリガーされません。これをトリガーするクリーンな方法はありますか? @record.save を明示的に呼び出してみましたが、フォームの送信が遅くなります。ありがとう

編集 1: 関連するモデル/コントローラー コードを追加する

モデル

after_save { do_some_stuff }

コントローラ

def create
  insert_query = "SELECT fn_insert_order_all('#{param1}', '#{param2}', '#{param3}', #{param4});"
  new_record = ActiveRecord::Base.connection.execute(insert_query)

  respond_to do |format|
    if new_record[0]["fn_insert_order_all"] != false
      @record = Order.find_by_id((new_record[0]["fn_insert_order_all"]).to_i)
      # @record.save # I can trigger the after_save callback here, but it results in slower performance
      format.json { render json: @record, status: :created }
    else
      error = { message: "record not saved" }
      format.json { render json: error, status: :unprocessable_entity }
    end
  end
end
4

1 に答える 1