2014-03-05 53 views
0

在我面前的一张纸上,我列出了107个姓名,家乡,出生日期和性别列表。Mass创建模型的实例?

在我的Rails应用程序,我跑

rails g scaffold Person name hometown dob gender

是否必须通过创建的表单手动将每个人添加到数据库?有没有办法从我的文本编辑器做到这一点?

+0

列表的结构是什么?需要更多信息来提供解决方案。 –

+0

你可以写一个方法,但如果他们在纸上,你仍然需要输入所有的数据,或者你可以在控制台中完成,你仍然需要输入数据。 –

+0

@Baloo - 我知道我将不得不在某处输入它们。但是有没有一种更有效的方法比每次都将它们提交给一个表单呢? –

回答

3

您可以在db文件夹中使用seed.rb文件。您可以执行任意的Ruby语句来创建对象并将它们保存(或更新)到数据库中。 只需列出一堆像这样的语句并执行db:seed Rake任务。

Person.create(:name => 'Bob', :hometown => 'Bobington', :dob => '1980-06-25', :gender => 'male') 

注意,如果所创建的记录中的一个发生故障的唯一支票或类似的东西(即不能插入到数据库)的任务将失败。如果可以的话,使用其他的rake任务(db:drop,db:create,db:migrate)'清理'数据库,如果无法擦除,可以用手清空表格。

+0

这看起来正是我所期待的。让我试试这个。我需要在'db:seed'后面运行'rake db:migrate'吗? –

+1

@DylanRichards不,你需要在'db:seed'之前运行它。确切地说,是 –

+0

。 Seed是设置数据库的最后一步。我扩展了答案,以便在执行种子时数据库不为空时也记下可能存在的问题。请注意,您始终可以调试种子文件来追踪错误。 – KappaNossi

相关问题