关于数据库seed.rb的问题

Mel*_*lon 1 ruby-on-rails ruby-on-rails-3

如果我在db/seeds.rb中定义了以下代码,

default_car=Car.create({:name=>'TOYOTA'})
User.create({:username=>'default_user', car_id=>default_car.id})
Run Code Online (Sandbox Code Playgroud)

我知道当我运行" rake db:seed " 时default_car,user实例将被存储到数据库中.

我的问题是,如果我再次一次又一次地运行' rake db:seed ' (多次),将相同的实例存储到具有多个副本的数据库中,或者只将实例一次保存到数据库中,无论我运行多少次rake db:种子

Pas*_*cke 5

更好的方案:

default_car = Car.find_or_create_by_name 'TOYOTA'
user = User.find_or_create_by_username 'default_user'
user.car = default_car
user.save
Run Code Online (Sandbox Code Playgroud)

这样,您可以多次运行"rake db:seed",而无需每次都手动删除数据库.