2017-01-21 3 views
-2

je dois remplir ma base de données avec les données du fichier YAML, qui contient quelque chose comme:Comment graver la base de données avec les données du fichier yaml? Ruby on Rails

-Users: 
------Users_nameship: 'First group' 
------Members: 
----------Name:'Jack' 

etc. et je dois utiliser le fichier seeds.rb Pour l'instant je fais quelque chose comme ça:

require 'yaml' 

    seed_file = Rails.root.join('db', 'seeds.yml') 
    @config = Hash.new(YAML::load_file(seed_file)) 
    @config.each do |key, values| 
     values.each do |k,v| 
      Project.create title:v 
     end 
    end 

Mais il ne remplit aucune cellule dans le tableau. S'il vous plaît aider

Répondre

1

Les fichiers Yaml sont utilisés par les appareils à des fins de test. D'autre part, vous pouvez utiliser db/seed.rb pour remplir votre base de données avec la commande suivante:

rake db:seed 

Vérifiez les modèles suivants:

class Group < ApplicationRecord 
    has_many :users 
end 

class User < ApplicationRecord 
    belongs_to :group 
end 

Vous pouvez générer deux groupes avec deux utilisateurs chacun avec le fichier seed.rb suivant:

Group.create!([{name: "First group"}, {name: "Second group"}]) 

User.create!([{name: 'Jack', group_id: 1}, {name: 'Bob', group_id: 1}, {name: 'Robert', group_id: 2}, {name: 'John', group_id: 2}])