Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在迁移中向数据库表添加条目?_Ruby On Rails_Database Migration - Fatal编程技术网

Ruby on rails 如何在迁移中向数据库表添加条目?

Ruby on rails 如何在迁移中向数据库表添加条目?,ruby-on-rails,database-migration,Ruby On Rails,Database Migration,我只是忘了怎么做,在网上找不到有用的教程 可以设置一个db表,然后在迁移过程中用数据填充它 因此,我用t.column:name=>:string获得了我的数据库“persons”,并希望在创建数据库后添加一个人。它有点像Person.add:name=>“Nobody”。。。但是我忘了该方法是如何准确调用的。试试这个Person.create(:name=>'nobody')尝试在seed.rb中使用krunal shah的示例。然后运行rake taskrake db:seed您不应该在迁移

我只是忘了怎么做,在网上找不到有用的教程

可以设置一个db表,然后在迁移过程中用数据填充它


因此,我用
t.column:name=>:string
获得了我的数据库
“persons”
,并希望在创建数据库后添加一个人。它有点像
Person.add:name=>“Nobody”
。。。但是我忘了该方法是如何准确调用的。

试试这个
Person.create(:name=>'nobody')

尝试在seed.rb中使用krunal shah的示例。然后运行rake task
rake db:seed

您不应该在迁移中创建新数据。不过,您可以更改现有数据

要填充数据库,应使用
种子


这使得定义模式(迁移)和用正确的数据填充模式之间有了清晰的分离。可以假设您需要更频繁地更改种子(例如,添加新的查找值)。为数据库设定种子是一个简单的步骤,应该是可重复的,并且不会影响其余的数据。

这正是我想要的。。。这是一个很简单的问题,但是当你忘记了方法名时……你可能想使用更有力的
Person.create。该版本在无法保存时引发异常,例如由于验证问题。它在self.up中工作。。。然后首先创建表格,然后在这个人下面创建…我不同意。例如,当您将枚举提取到实际模型中时,
create是非常有意义的一些数据。假设您有一个
User.role
,它是
admin
visitor
,然后决定在
roles
表中使其成为一个成熟的
role
模型:您最好在迁移中实际创建现有的
角色。我理解您的观点。如上所述:我更喜欢将数据与模式定义分开。我假设我的数据比我的模式变化更频繁。部署时,我总是同时运行迁移和种子。还不确定
schema.rb中的数据会发生什么情况,所以
rake db:setup
是否仍然有效?