0

テスト結果を含む csv ファイルをインポートする mongoid を使用した Rails 4.2 アプリケーションがあります。モデル内のすべてのフィールドを定義することはできません。フィールドはテストごとに変化し、常に約 700 のフィールドがあるためです。動的属性を使用しており、インポートと表示は正常に機能します。

attribute_names メソッドを使用してすべての属性名を取得しようとしていますが、取得できるのはモデルで定義されているものだけです。モデルで何も定義しない場合、「_id」のみが返されます。一方、属性メソッドは、実際のドキュメントの属性を表示できます。

>> @results.first.attributes.count
=> 763
>> @results.first.attribute_names
=> ["_id"]

fields.keys も試しましたが、同じ問題です

>> @results.first.fields.keys
=> ["_id"]

現時点での私のモデルは次のようになります

class Result
  include Mongoid::Document
  include Mongoid::Attributes::Dynamic

  def self.import(file)
    CSV.foreach(file.path, headers: true) do |row|
        Result.create! row.to_hash
    end
  end
end

誰かがそれを機能させる方法を説明できますか?

どんな助けでも大歓迎です。

4

1 に答える 1