0

私のデータベースには、構成をyamlファイルとして保存するテーブルがあります。それぞれの列は と呼ばれconfigます。

たとえば、最初の 5 つの構成エントリを読み込んで、それらを yaml に変換したいと思います。

次のように、レールコンソールで試しました:

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

これはかなり間違っているようです、私は知っています。私がつまずいた最初のこと:

  • Person.first(5).pluck(:config)NoMethodErrorが発生するのはなぜですか?
  • 上記の方法で行うと、最初にすべての構成が抽出され、次に最初の 5 行が取得されますよね? クエリを高速化するにはどうすればよいですか?

2 番目の質問:

  • 返されたテーブル行 (最初の 5 行など) を反復処理し、-method を介して各構成列の内容を yaml に変換する正しい方法は何でしょうto_yamlか?
4

1 に答える 1

1

Person.first(5).pluck(:config) が NoMethodError を生成するのはなぜですか?

そのようなメソッドを持たない配列にNoMethodErrorメッセージを送信しようとしているため、 a が生成されます。pluck

上記の方法で行うと、最初にすべての構成が抽出され、次に最初の 5 行が取得されますよね? クエリを高速化するにはどうすればよいですか?

はい、そうです。最初の 5 つのレコードだけから構成を抜き出したい場合は、次を使用しますlimit

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

config値を YAML として解析する方法については、このスレッドを参照してください。

于 2012-11-26T10:00:57.287 に答える