0

我的数据库中有一个表,它将配置保存为 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-method 将每个配置列的内容转换回 yaml?
4

1 回答 1

1

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

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

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

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

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

有关如何将config值解析为 YAML 的信息,请参阅此线程

于 2012-11-26T10:00:57.287 回答