繁体   English   中英

从YAML文件加载ActiveRecord模型

[英]Load an ActiveRecord models from a YAML file


我想创建一个从YAML文件填充的ActiveRecord只读模型。 这是我的模型:

class Building  < ActiveRecord::Base

?right_callback_to_use? :load_data_from_yaml
after_initialize :readonly!

def load_data_from_yaml
    #implementation?
end

end

这是我的yml

- id: 1
  name: Building 1
- id: 2
  name: Building 2

如何从外部yml文件加载数据并将其与模型关联?

我应该如何只在应用程序的开头调用一次函数load_data_from_yaml

我正在使用Rails 4

谢谢!

使用添加到问题中的YAML结构,假设file.yml是您的YAML文件的名称,以下内容应该可以使用

require 'yaml' #I think rails does this already for you so it might not be necessary

def load_data_from_yaml
  YAML.load_file("file.yml").each { |building| self.class.create!(building) }
end

如果您的YAML文件的大小很大并且您想要一些速度,可以看看: https : //github.com/bjhaid/active_record_bulk_insert

您的方法将如下所示:

def load_data_from_yaml
  self.class.bulk_insert(YAML.load_file("file.yml"))
end

我认为您正在搜索ActiveHash 该库充当只读ActiveRecord,可让您将数据定义为哈希,YAML或JSON。 它甚至支持关系!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM