2017-02-05 5 views
1

Ich bin Ruby-Newbie und ich muss meine Datenbank von YAML seed. Nach dem Laden YAML in seeds.rb bekam ich dieses Array von hash:Seeding-Datenbank von YAML

{"projects"=>[{"title"=>"Family", "todos"=>[{"text"=>"buy a milk", "isCompleted"=>false}, 
{"text"=>"Change oil in engine", "isCompleted"=>false}, 
{"text"=>"To send the letter", "isCompleted"=>true}, 
{"text"=>"To drink smt", "isCompleted"=>false}, {"text"=>"Buy t-shirt", "isCompleted"=>false}]}, 
{"title"=>"Job", "todos"=>[{"text"=>"Call chief", "isCompleted"=>true}, 
{"text"=>"To send documents", "isCompleted"=>true}, 
{"text"=>"Make todolist", "isCompleted"=>false}]}, 
{"title"=>"Other", "todos"=>[{"text"=>"To call friend", "isCompleted"=>false}, 
{"text"=>"Prepare for trip", "isCompleted"=>false}]}]} 

Mein Code:

seed_file = Rails.root.join('db', 'seeds', 'seeds.yml') 
config = HashWithIndifferentAccess.new(YAML::load_file(seed_file)) 

Wie ich es laufen kann und neue Projekte und Todos schaffen? Bitte helfen Sie!

Antwort

1

Sie können etwas tun jedes der Projekte und Aufgaben iterieren:

Lassen my_hash zu diesem Hash Sie,

my_hash[“projects”].each do |project| 

    # do whatever you need to do with each item in the hash e.g. 
    puts project[“title”] 

    # then to get the todos… 
    project[“todos”].each do |todo| 
    puts todo[“text”] 
    end 
end 
+0

Sie dann eingestellt werden, Vielen Dank! – GreenSpike