ruby on rails种子.yml文件,其中包含具有关联的模型

时间:2017-04-05 21:26:46

标签: ruby-on-rails ruby database yaml seed

我真的不明白如何播放一个包含多个数据模型的.yml文件,加上它们是相互关联的。

这就是我所拥有的:

project.rb

class Project < ActiveRecord::Base
  has_many :todos
end

todo.rb

class Todo < ActiveRecord::Base

  belongs_to :project

end

我的数据架构:

  create_table "projects", force: :cascade do |t|
    t.string   "title"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

  create_table "todos", force: :cascade do |t|
    t.string   "text"
    t.boolean  "isCompleted"
    t.integer  "project_id"
    t.datetime "created_at",  null: false
    t.datetime "updated_at",  null: false
  end

seeds.rb(ofc它不起作用)

seed_file = File.join(Rails.root, 'db', 'seeds/seeds.yml')
config = YAML::load_file(seed_file)
Project.create(config["projects"])

种子/ seeds.yml

projects:
 - title: 'family'
   todos:
    - text: 'Get some milk'
      isCompleted: false
    - text: 'Cook some bacon'
      isCompleted: true
    - text: 'Repair the front door'
      isCompleted: false
 - title: 'work'
   todos:
    - text: 'Call my boss'
      isCompleted: true
    - text: 'Finish my work tasks'
      isCompleted: true
    - text: 'Get fired'
      isCompleted: false
 - title: 'therest'
   todos:
    - text: 'Do something'
      isCompleted: false
    - text: 'Ask a question on stackoverflow'
      isCompleted: false

有人可以告诉我,我该怎么做才能让它正常工作。我需要使用seeds.yml中的这类数据,我知道如何为projectstodos创建两个不同的.yml文件并使它们正常工作,但这不是方法我想解决我的问题。

2 个答案:

答案 0 :(得分:0)

帮自己一个忙,删除seeds.yml文件并在seed.rb中创建所有内容

答案 1 :(得分:0)

看起来您需要将模型分成单独的夹具文件。虽然它说通过YML&amp; amp; seed.rb工作流程:

  

http://guides.rubyonrails.org/testing.html#the-low-down-on-fixtures

我建议使用备用路由来为您的数据库设定种子,除非这是必须遵循的业务要求。如果您回答,可以提供更多帮助:

  • 您是否已拥有要向db提供的数据?
  • 您的目标是为测试/ dev /或生产数据库提供种子吗?