如何使用Activerecord解析db-table中的yaml-config?

时间:2012-11-26 09:49:47

标签: ruby activerecord ruby-on-rails-3.2

我的数据库中有一个表,它将配置保存为yaml文件。 相应的列称为config

我想阅读前5个配置条目,然后将它们转换回yaml。

我在rails控制台中尝试过,如下所示:

Person.pluck(:config).first(5).each do {|c| c.to_yaml}

我知道这似乎是错误的。让我绊倒的第一件事是:

  • 为什么Person.first(5).pluck(:config)会产生NoMethodError?
  • 按照我上面这样做的方式首先采取所有配置,然后检索前5行,对吗?如何加快查询速度?

第二个问题:

  • 以正确的方式迭代返回的表行(例如前5行),并通过to_yaml方法将每个配置列的内容转换回yaml?

1 个答案:

答案 0 :(得分:1)

  

为什么Person.first(5).pluck(:config)会产生NoMethodError?

它产生NoMethodError,因为您尝试将消息pluck发送到没有这种方法的数组。

  

按照我上面的方式进行操作将首先采集所有配置,然后检索前5行,对吗?如何加快查询速度?

是的,这是正确的。如果您想从前五个记录中提取配置,请使用limit

Person.limit(5).pluck(:config)

有关如何将config值解析为YAML的信息,请参阅this thread