2013-08-27 72 views
1

我試圖將CSV文件導入到我的數據庫。我需要應用程序 使用CSV文件中的確切created_at屬性,但它不起作用。 我只看到Time.now導入CSV時created_at屬性不更新

我在做什麼錯?

模型CSV導入代碼:

def self.import(file, current_user) 
    allowed_attributes = [ "id","created_at","updated_at"] 
    @current_user = current_user 
    CSV.foreach(file.path, headers: true) do |row| 
     energy = find_by_id(row["id"]) || new 
     h1 = { "user_id" => @current_user.id } 
     h2 = row.to_hash.slice(*accessible_attributes) 
     h3 = h1.merge(h2) 
     energy.attributes = h3 
     energy.save! 
    end 
    end 
+1

您必須明確設置created_at。 accessible_attributes does not沒有created_at。 – techvineet

+0

set created_at'h3 [:created_at] = row [「created_at」]#THE_TIME_FROM_CSV' –

+0

請不要投票表決問題。我只是想弄明白。我會張貼.csv表格截圖;但是,由於缺乏聲譽,我無法做到這一點! –

回答

0

documentation

attr_accessible(*args) public 

指定型號的白名單屬性,可以通過大規模的分配進行設置。

質量分配只會在此列表中設置屬性,以分配給您可以使用直接寫入器方法的其餘屬性。

您需要添加到attr_accessible您願意更新的所有屬性,包括created_at

+0

yaeh,現在一切正常。感謝名單 –