![](/img/trans.png)
[英]How can I load some ActiveRecord models from a YAML file and save them to the DB?
[英]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.