gpt4 book ai didi

ruby-on-rails - 在 >= Rails 3.2.0 中创建 "test"数据库内容的最佳方法是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 20:11:41 25 4
gpt4 key购买 nike

我希望能够创建几十个用户、文章(或应用程序独有的任何资源)等,以查看应用程序在充满时的外观和响应。这仅用于测试/开发目的,因此我希望能够轻松地将其回滚、销毁或进行任何操作。也许我想多了,谁知道呢。

我看到人们建议只使用标准迁移,这是一个想法,但我想选择性地执行此操作,我不希望项目中的每个人在更新应用程序时都获得示例内容。

其他人提到了 Factory Girl,但这看起来可能有点矫枉过正,或者是真正为测试而设计的 gem 的副用途,等等。目前还不是很清楚。

那么在这种情况下你们都做了什么?

最佳答案

我推荐一个 rake 任务。你可以把它放在 lib/tasks 中,这样项目中的每个人都可以得到它,但不是每个人都需要运行它,只有当它运行时它才会做任何事情。 This a great tutorial关于编写 rake 任务,请记住阅读 Rails 标题下的部分,以了解如何引入模型。

在那之后,您的 rake 任务基本上只是 ruby​​ 代码。我建议使用动态的 find_or_create_by 方法来显式创建你想要的模型,如果它运行多次,它们将不会被创建多次。您还可以选择在创建特定模型之前销毁所有记录。

我不建议使用 Factory Girl,因为您可能希望明确控制模型的创建方式。

这里有一个示例 rake 任务来展示它是多么容易:

#lib/tasks/my_task.rake
task :fake_data => :environment do
MyModel.find_or_create_by_name("Test")
end

然后在您的控制台中:

rake fake_data

或者:

rake fake_data RAILS_ENV=test

哒哒!

关于ruby-on-rails - 在 >= Rails 3.2.0 中创建 "test"数据库内容的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9113850/

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