ruby-on-rails - seed.rb 文件的作用是什么?

标签 ruby-on-rails seed

我对 Ruby on Rails 很陌生。不知道seed.rb的作用是什么文件是,为什么我们使用这个文件,为什么我们需要运行 rake db:seed命令。谁能用例子解释一下?

最佳答案

引导数据

种子数据的目的是引导您的数据库。例如,如果您有一个用于跟踪用户所在城市和州的 users 表,您可能希望在创建第一个用户之前使用美国州名和缩写为相关表设置种子。

同样,您可能还希望为管理帐户或首次运行应用程序所需的其他数据等内容植入种子。作为一般规则,您不应向seeds.rb 文件添加任何对引导您的数据库或其关系没有必要的内容。

相关的 Rake 任务

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

  • rake 分贝:种子
    从 db/seeds.rb
  • 加载种子数据
  • rake 分贝:设置
    创建数据库,加载模式,并使用种子数据进行初始化
  • rake 分贝:重置
    rake db:setup , 但先删除数据库

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

    关于ruby-on-rails - seed.rb 文件的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13789143/

    相关文章:

    ruby-on-rails - 编辑个人资料表单的未定义方法错误? (Ruby on Rails)

    ruby-on-rails - Rails + Devise 如何不强制使用 SSL?

    ruby-on-rails - 如何编写Activerecord/Arel交集查询

    ruby-on-rails - 使用通配符时,只有一个文件在 rails runner 中运行

    ruby-on-rails - Heroku Postgres : Make existing database follower

    c++ - boost C++ : Seeding random numbers in a function

    c# - 使用 System.DateTime.Now.Ticks 作为种子值

    c# - Code First 迁移种子错误 : The binary operator Equal is not defined for the types 'System.Nullable` 1[System. Int32 ]' and ' System.Int32'

    javascript - 预测 Javascript 的 Math.random 的种子

    python - 在python中设置程序范围内的随机种子