Sha256: 13da806615d8b069c60eee2d20304b92f997f6f8443b1a6bd8c08cfe16357597

Contents?: true

Size: 1.24 KB

Versions: 1

Compression:

Stored size: 1.24 KB

Contents

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
multi-updator-0.0.5 lib/multi-updator/application_controller.rb