class ApplicationController def multi_update delete_list, update_list, create_list = [], [], []; params[:multiple_data].each do |index, single_data| destroy_flag = single_data.delete(:_destroy) if(destroy_flag == "1") delete_list << single_data[:id] else if(single_data[:id]) update_list << single_data else create_list << single_data end end end # 1. delete resource_class.destroy(delete_list) unless delete_list.empty? # 2. update update_list.each do |single_data| # TODO resource_class.find 로 찾을 수 없는 경우 - entry_service 같은 경우에 대한 대응이 필요하다. # ... data = resource_class.find(single_data.delete(:id)) update_resource(data, single_data) end # 3. create create_list.each do |single_data| #data = build_resource(single_data) #data.save single_data[:domain_id] = @domain.id resource_class.create!(single_data) end respond_to do |format| format.html { redirect_to(collection_url) } format.xml { head :ok } format.json { render :json => {"Multi-Update" => "OK"} } end end end