在 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" }
])
我知道如何在 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" }
])