【发布时间】:2013-03-29 01:01:17
【问题描述】:
我有一张表,我将在其中存储测量单位和相应的类别。例如,“杯子,体积”和“盎司,质量”。我只关心大约 12 个测量值,我希望它们在数据库中而不需要手动输入,因为无论何时我想部署它或将代码移动到某个地方,我都希望重新创建它。
所以,我认为最好的方法是使用它们创建一个 csv 文件,然后使用 rake db:seed。但是我以前从未这样做过,所以有人可以指导我如何创建这个 csv,以及如何编写 seed.rb 文件来生成它吗?这是正确的做法吗?
解决方案:
#db/seeds.rb
require 'open-uri'
#Supply all the units of measurement to be used
Unit.delete_all
open("db/seeds/measurements.csv") do |measurements|
measurements.read.each_line do |measurement|
unit, uof = measurement.chomp.split(",")
Unit.create!(:name => unit, :unit_of => uof)
end
end
【问题讨论】:
-
如果您只有 12 个测量值并且可能不再添加,那么创建一个表并将它们存储在数据库中是否有意义?可能是解决这个问题的其他方法。
-
你说得对,但我认为如果我只提供 12 个选项会变得一团糟,我也可能想在未来添加一些功能,例如,一旦你选择了一个体积单位所有其他选择都会降低质量,因此您不能混合和匹配体积和质量。这是我将它们存储在那里的主要原因,您会建议另一种方式吗?
标签: ruby-on-rails seed