首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在rails中的表中设置默认数据?

如何在rails中的表中设置默认数据?
EN

Stack Overflow用户
提问于 2013-03-29 01:01:17
回答 2查看 1.5K关注 0票数 3

我有一个表,我要存储测量单位和相应的类别。例如,“杯子,体积”和“盎司,质量”。我所关心的只有大约12个测量值,我希望它们在数据库中而不需要手动输入,因为每当我想部署它或将代码移到某个地方时,我都希望它能够重新创建。

因此,我认为最好的方法是使用它们创建一个csv文件,然后使用rake :seed。但是我以前从来没有这样做过,所以有人能指导我如何创建这个csv,以及如何编写seeds.rb文件来生成这个文件吗?这样做对吗?

解决方案:

代码语言:javascript
运行
复制
#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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-29 01:02:50

只需编写用于手动生成它们的代码并将其放到seeds.rb中即可。您可以在该文件中使用普通的ruby;所以要么编写普通create,要么加载存储在其中的csv,例如db/seeds/measurements.csv。要获得该文件的路径,请使用Rails.root.join("db/seeds/measurements.csv")

示例:

代码语言:javascript
运行
复制
File.open(Rails.root.join("db/seeds/measurements.csv")) do |f|
  # use f here
end
票数 1
EN

Stack Overflow用户

发布于 2013-03-29 06:35:51

seeds.rb目录中有一个名为db的文件。

您可以在其中添加默认数据,并且在执行rake db:seed时,将在数据库中填充该数据。

下面是一个例子,说明如何向它添加种子。

代码语言:javascript
运行
复制
product_types = ProductType.create([
                                   {:name => 'clock',:organisation_id => 1}
])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15694774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档