0
在我的控制器上創建操作,我使用sql查詢來插入父記錄和所有子記錄。但它不會觸發我需要的after_save回調。有觸發這個乾淨的方式嗎?我試着明確地調用@ record.save,但這會減慢表單的提交速度。由於乾淨的方式來觸發after_save回調時,使用sql插入
編輯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
請發佈相關型號和控制器代碼。 – Brandan 2013-03-21 13:19:49