我有一個通用導入表,允許將csv文件加載到導入表中的不同列中。相同的導入表用於多種類型的導入,所以我不處理各個字段,直到用戶準備好並告訴我在哪裏處理它。我應該如何更新來自不同控制器(或模型)的一個模型(表格)
因此,在這種情況下,我有一個導入表,其中有許多單元格用於在捐助者表中創建(或更新)捐助者。如何將與import_table模型和控制器關聯的import_table數據發送到我的donors_controller的create方法?
的創建我donors_controller的方法:
def create
# need to find donor by id if given, else use find_or_create_by_blahblahblah
unless @donor = Donor.find_by_id(params[:donor][:id])
@donor = Donor.find_or_initialize_by_company_and_prefix1_and_first_name1_and_last_name1_and_address1(params[:donor])
end
if @donor.new_record?
respond_to do |format|
if @donor.save
format.html { redirect_to @donor, notice: 'Donor was successfully created.' }
format.json { render json: @donor, status: :created, location: @donor }
else
format.html { render action: "new" }
format.json { render json: @donor.errors, status: :unprocessable_entity }
end
end
else
respond_to do |format|
if @donor.save
format.html { redirect_to @donor, notice: 'Donor already exists. Please edit donor if needed.'}
format.json { render json: @donor, status: :created, location: @donor }
else
format.html { render action: "new" }
format.json { render json: @donor.errors, status: :unprocessable_entity }
end
end
end
end
然後在我的import_tables控制器我有這樣的方法:
def process_import
@import = ImportTable.find(params[:id])
if @import.import_type == 'Prospects'
#do something here....
elsif @import.import_type == 'Donations'
#do something here...
end
end
我不知道究竟我應該在#do something here...
部位做。
我在想我應該從@import中挑選出正確的列,並將它們放在[:donor]數組中,並將它們發送給我的donors_controller的create方法,但我不確定如何做到這一點或者如果這是正確的方法。
我同意,這是正確的方法... –