2015-06-27 70 views
0

從一個CSV文件創建記錄的下列步驟設置每個記錄,作爲模型Rails的CSV導入與參數有關的會話價值

def self.import(file) 
    CSV.foreach(file.path, :col_sep => "\t", headers: true, skip_blanks: true) do |row| 
begin 

    @analysis_id => session[:analysis_id] 

    Registration.create(
    :balance => row[10] 
) 

定義失敗。添加PARAMS到窗體:

<%= form_tag import_registrations_path, multipart: true do %> 
    <%= hidden_field_tag "registration[analysis_id]", session[:analysis_id] %> 

傳遞參數

"registration"=>{"analysis_id"=>"1"}, "file"=>#<ActionDispatch::Http::UploadedFile:0x00000103bbe4d8 

與表述爲

Registration.create(
    :analysis_id => analysis_id, 
    :balance => row[10] 
) 

或可替代地:analysis_id => params[;registration][;analysis_id], 創建但創建操作失敗由於未定義局部變量或method'analysis_id'

我很明顯缺少交接導入操作的內容,以及如何將其插入導入流中。

回答

0

控制器需要指定:

Registration.import(params[:file], params[:analysis_id]) 

和模型調用PARAM

def self.import(file, analysis_id) 

和下面將執行

Registration.create(
    :analysis_id => analysis_id, 
    :balance => row[10] 
) 

回答here already, but Google roulette did not pan out