我是rails的新手,我正在尝试开发和部署我的第一个ruby应用程序。在此过程中,我在数据库中创建了某些表,而没有关联的模型。 例如,用户角色表。尽管使用模型并通过Web界面添加数据可能更好,但它不是问题的主题,表格可能与城市列表或其他一些数据有关。 最初的人口很清楚,这项工作是用“rake db:seed”完成的。 但是,如果我需要向此表添加更多数据呢?什么是最佳做法? 当然,种子文件应该填充新数据。但是我已经将此表与生产中的数据进行了对比。如何在那里添加这些新数据? 我想到的唯一答案是使用纯SQL。但它似乎不是一种“铁路方式”。 谢谢。
更新。 作为自然延续,不仅需要创建新数据,还需要更新和删除已存在的数据。
答案 0 :(得分:1)
您可以制作seeds.rb仅在不存在时插入新记录。例如
cities = [
{ :name => 'New York'},
{ :name => 'Paris' },
{ :name => 'Tokyo' },
{ :name => 'Saigon' }]
cities.each do |city|
City.create(city) unless City.exists?(:name => city[:name])
end
答案 1 :(得分:0)
或
cities.each do |city|
City.find_or_create_by_name(city[:name])
end
这将触发查询以检查记录,它不存在,它将创建一个。使用时是否同样有效,除非我们按照“Rails Way”的说法进行操作。