我想要一些yml:
My Random Name of a Topic:
Color:
Brown
Blue
Green
Style:
Thin
Fat
我想为类型和样式中的所有单词组合生成Topic
对象和Item
对象。
这些字词中的每一个都会有一个type
属性,如果它是style
或color
主题有一个HABTM with Items,所以我也想构建这个连接。
但是不要让别人通过一个巨大的答案,我只是在寻找解析这个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
如果我的所有主题的命名都不同,我如何选择其嵌套属性并从中创建Item对象?
答案 0 :(得分:2)
又快又脏:
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