种子数据与类哈希

时间:2014-04-05 15:15:21

标签: ruby-on-rails ruby-on-rails-4

我正在编写一个基于浏览器的RPG,我正试图找出存储“种子”数据的最佳方法,即。像位置,怪物和物品这样的数据,是游戏的标准实体。

最好将它存储在“def self.items ..”哈希中,其中我保留所有不同的项目,或者我应该将它们放在数据库中并播种它们?如果我应该播种它们,最好的方法是什么,只需用200-300个不同的实例填充seed.rb文件或将它们保存在其他文件中?

1 个答案:

答案 0 :(得分:1)

我绝对讨厌杂乱的种子文件。不可否认,这是个人偏好,而不是对或错。

以下是我在工作中的应用程序中处理我们需要使用的大量种子数据的内容:

# Folder Structure
db
  schema.rb
  seeds.rb
  seeds/
    01_organization.rb
    02_real_estate_industry.rb
    03_click_types.rb
    ... 

我的seeds.rb文件:

# All seeds are broken out into ordinally names files inside the db/seeds/* directory.
Dir[File.join(Rails.root, 'db', 'seeds', '**/*.rb')].each do |file|
  require file
end

种子/文件夹中的示例种子文件:

organizations = Organization.all
Organization.create(
  {
    name: 'CompanyName',
    blurb: 'Hi. I am a blurb.',
    city: 'Some City',
    state: 'ST',
    web: 'http://www.somewebsite.com',
    phone: '1-000-555-1212'
  }
) if organizations.empty?

这具有以所需顺序加载我们的种子文件的效果(使用01_然后02_等)。它还将我们的种子分解为逻辑分组,并以这样的方式组织它们,对于我们的团队,我们可以更轻松地管理它们。