Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何制作定制的种子耙_Ruby On Rails_Yaml_Seed - Fatal编程技术网

Ruby on rails 如何制作定制的种子耙

Ruby on rails 如何制作定制的种子耙,ruby-on-rails,yaml,seed,Ruby On Rails,Yaml,Seed,我想买些yml: My Random Name of a Topic: Color: Brown Blue Green Style: Thin Fat 我想创建一个主题对象,以及一个项目对象,用于所有类型和样式组合的单词 这些单词中的每一个都有一个类型属性,该属性表示其是样式还是颜色 主题有一个包含项目的HABTM,所以我也想建立这个连接 但我并不是要别人费力地给出一个巨大的答案,我只是在寻找解析这个yaml的最佳方法: task glass_f

我想买些yml:

My Random Name of a Topic:
  Color:
    Brown
    Blue
    Green
  Style:
    Thin
    Fat
我想创建一个
主题
对象,以及一个
项目
对象,用于所有类型和样式组合的单词

这些单词中的每一个都有一个
类型
属性,该属性表示其是
样式
还是
颜色

主题有一个包含项目的HABTM,所以我也想建立这个连接

但我并不是要别人费力地给出一个巨大的答案,我只是在寻找解析这个yaml的最佳方法:

task glass_full_of_yaml: :environment do
  File.open(Rails.root + 'lib/words/glass_full_of.yml', 'r') do |file|
    YAML::load(file).each do |record|
      debugger
      # Item.create!(type: record, name: record)
    end
  end
end
如果所有主题的名称都不同,如何选择其嵌套属性并从中创建项目对象?

快速脏:

YAML::load(file).each do |topic, item_types|
  Topic.create! :name => topic, :items => item_types.map { |type, names|
    names.split(' ').map { |name|
      Item.new :type => type, :name => name
    }
  }.flatten
end