gpt4 book ai didi

ruby-on-rails - 如何使用 Rails 测试装置为我的开发数据库播种

转载 作者:行者123 更新时间:2023-12-05 08:55:05 25 4
gpt4 key购买 nike

我想以与测试数据库完全相同的方式为我的开发数据库提供种子。我有一个 PersonalTitle 模型,它有一个属性 titletitle 的值类似于 MrMrsMissMs博士belong_to PersonalTitle 还有其他几个模型。例如

class Administrator < ActiveRecord::Base
belongs_to :personal_title
end

class Worker < ActiveRecord::Base
belongs_to :personal_title
end

class Client < ActiveRecord::Base
belongs_to :personal_title
end

...等等

在测试数据库的 personal_titles.yml 中,我有

personal_title_mr:
title: Mr
personal_title_mrs:
title: Mrs
personal_title_ms:
title: Ms
personal_title_miss:
title: Miss
personal_title_dr:
title: Dr

如果我想在 administrators.yml 中使用个人头衔,我有

administrator_john_smith:
personal_title: personal_title_mr

所以我可以使用命名引用来使用 personal_title_id 填充管理员表。如果我为我的开发数据库播种,我将无法做到这一点。根据我在堆栈溢出上的发现,对于开发,personal_titles.yml 必须如下所示,

- title: Mr
- title: Mrs
- title: Ms
- title: Miss
- title: Dr

因此不能在用于填充开发数据库的 yml 文件中命名个人头衔。为什么不? Rails 知道如何使用名称引用,因为它会在测试数据库播种时执行此操作。

我正在使用 Rails 4.10 和 Ruby 1.9.3

更新

我正在使用 db\seeds\seed_all.rb 为我的开发数据库播种。在这个文件里面我有

seed_file = Rails.root.join('db', 'seeds', 'personal_titles.yml')
personal_titles = YAML::load_file(seed_file)
PersonalTitle.create!(personal_titles)

我知道 faker,我有它的种子文件。在上述情况下,我想要我了解的已知数据,这些数据不会改变并且我可以完全控制关联。

最佳答案

您可以使用以下 rake 命令触发数据库中的灯具加载:

rake db:fixtures:load

默认情况下,rails 环境将用于开发,因此固定装置将加载到该环境的数据库中。

关于ruby-on-rails - 如何使用 Rails 测试装置为我的开发数据库播种,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47225278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com