导入CSV时,created_at属性不会更新

时间:2013-08-27 06:29:44

标签: ruby-on-rails ruby csv

我尝试将CS​​V文件导入我的数据库。我需要应用程序 使用CSV文件中的确切created_at属性,但它不起作用。 我只看到Time.now

我做错了什么?

模型中的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 个答案:

答案 0 :(得分:0)

来自documentation

attr_accessible(*args) public

指定可通过质量分配设置的模型属性的白名单。

质量分配只会在此列表中设置属性,以分配给其他属性,您可以使用直接编写器方法。

您需要将attr_accessible愿意更新的所有属性添加到created_at,包括{{1}}。