在 rails 4 中播种内容文本的最佳方式

Best way to seed content text in rails 4

我知道如何在 rails 中创建标准种子文件并为我的数据库播种。但是,我有一个所见即所得的编辑器,我用它来创建许多内容页面。内容字段是 "text" 类型,包含整页 HTML。我将导出这些数据并想用它创建一个种子文件。

关于创建种子文件的最佳方式有什么想法吗?

例如,我是否应该创建一个引用来自单独文件的内容?还是我应该将文本保存在一个种子文件中?能否展示一个推荐示例?

您可以拥有一个包含内容的文件,然后只需阅读它并为您的数据库播种:

file_content = File.read('path to file with extension');
MyModel.create(text: file_content);

当然,如果您有多个项目需要播种,只需使用正确的文件名或特定目录中的所有文件循环遍历它们。

另一个选项,如果你有多个属性并且数据已经在数据库中,你可以使用seed_dump gem:https://github.com/rroblak/seed_dump

所以给定一个现有的数据库,运行

rake db:seed:dump

将在 seed.rb 中产生以下内容:

Product.create!([
  { category_id: 1, description: "Long Sleeve Shirt", name: "Long Sleeve Shirt" },
  { category_id: 3, description: "Plain White Tee Shirt", name: "Plain T-Shirt" }
])
User.create!([
  { password: "123456", username: "test_1" },
  { password: "234567", username: "test_2" }
])