Prawn (pdf ビルダー) でテーブルを作成するために使用している hstore 列があります。データは、特定の月のレコードで構成されます。これは hstore であるため、使用されるキーは日ごとに変わる可能性が高いため、これは動的である必要があります。
私は決定する必要があります:
1 その月に使用された一意のキー
その月に使用された一意のキーを見つけるためのヘルパーを作成しました。これらは列ヘッダーとして使用されます。
keys(@users_logs)
# this returns an array like - ["XC", "PIC", "Mountain"]
テーブルには、その月のユーザーの義務ログ データが表示されます。テスト用...既知のhstoreキーを明示的に呼び出すと...データが正しく表示されます。しかし、その hstore 以来...テーブルの列が本番環境でどうなるかわかりません。
テストのために、既知の hstore キーを呼び出します...これにより、職務ログごとにエビ テーブルの行データが作成されます。
@users_logs.map do |dutylog|
[ dutylog.properties["XC"],
dutylog.properties["PIC"],
dutylog.properties["Mountain"]
]
end
しかし、これは hstore であるため、本番環境でどのキーを呼び出すべきかわかりません。したがって、上記の反復を動的にする必要があります。
各dutylogエントリを反復処理してから、各一意のキーを反復処理し、キー値ごとに1つの「dutylog.properties [x]」呼び出しを出力しようとしましたが、成功しませんでした...しかし、これはキー値の配列を出力するだけです。ブロックで send() を使用しようとしましたが、それは役に立ちませんでした。
@users_logs.map do |dutylog|
[ keys(@users_logs).each { |k| dutylog.properties[k] }.join(",") ]
end
「dutylog.properties[k]」を動的にする方法についてのアイデアはありますか?