我想通过示例数据填充数据库,出于某种原因,我还想模拟created_at
。
这是我的种子.rb:
9.downto(1) do |i|
product = Product.new(price: 99.99)
product.created_at = i.days.ago,
product.save!
end
在数据库中,rake db:seed
的结果如下,
---- 2012-03-03 16:50:30.316886000 Z- 1
当我需要时
2012-03-03 16:50:30.316886000 Z- 1
如何避免结果中的这些----
符号?
(db:sqlite3)
更新:
我发现当我使用product.created_at = i.days.ago
时,
在回调中(before_save
)created_at
是Array
:[date_value, 1]
。所以我可以使用
before_save { self.created_at = self.created_at[0] }
然后,数据库中的值将是正确的(没有----
),但使用回调似乎不是一个好方法。
答案 0 :(得分:4)
问题在于这一行:
product.created_at = i.days.ago,
你需要摆脱尾随的逗号,这就是为什么你最终得到created_at
的数组。解决这个问题,您可以摆脱before_save
回调。
编辑:你得到---
的原因是因为你正在使用的任何ORM都在尝试序列化数组并将其转换为YAML。