seeds.rb文件的function是什么?

我是Ruby on Rails的新手。 我不知道seed.rb文件的function是什么,为什么我们使用这个文件,以及为什么我们需要运行rake db:seed命令。 任何人都可以举例说明吗?

引导数据

种子数据的目的是引导数据库。 例如,如果您有一个用户表,用于跟踪用户的城市和州,则可能需要在创建第一个用户之前使用美国州名和缩写对相关表进行播种。

同样,您可能还希望对管理帐户或第一次运行应用程序所需的其他数据进行分类。 作为一般规则,您不应向seed.rb文件添加任何内容,而该文件不是引导数据库或其关系所必需的。

相关的佣金任务

seeds.rb文件是存储种子数据的位置,但您需要运行相应的rake任务才能实际使用种子数据。 在项目目录中使用rake -T显示有关以下任务的信息:

  • rake db:seed
    从db / seeds.rb加载种子数据
  • rake db:setup
    创建数据库,加载模式,并使用种子数据进行初始化
  • rake db:reset
    rake db:setup相同,但先删除数据库

因此,您可以运行rake db:seed来随时手动运行seeds.rb文件。 但是,在大多数情况下,您可能希望在引导应用程序时运行rake db:setuprake db:reset

seed.rb文件的目的非常简单,它允许我们通过使用语法在文件中写入来接受我们的(Model)数据库中的数据,并且在我们使用控制器,模型通过表单输入此数据时填充rake任务之后。 例如:

 Country.create(name: 'Germany', population: 81831000) Country.create(name: 'France', population: 65447374) Country.create(name: 'Belgium', population: 10839905) Country.create(name: 'Netherlands', population: 16680000) 

之后: rake db:seed rake db:setup