У меня есть столбец hstore, который я использую для создания таблицы в Prawn (pdf builder). Данные будут состоять из записей за данный месяц. Поскольку это hstore, используемые ключи, скорее всего, будут меняться изо дня в день, поэтому это должно быть динамичным.Генерировать динамические вызовы ключей hstore в Prawn
нужно определить:
1 Какие уникальные ключи используются в этом месяц
Я создал помощник, чтобы найти уникальные ключи, которые были использованы в течение месяца. Они будут использоваться в качестве заголовков столбцов.
keys(@users_logs)
# this returns an array like - ["XC", "PIC", "Mountain"]
В таблице будут отображаться данные пользователя dutylog за месяц. Для тестирования ... Если я явно вызываю известные ключи hstore ... данные отображаются правильно. Но, поскольку его hstore ... Я не буду знать, что столбец таблицы будет в производстве.
Для тестирования я называю известные ключи hstore ... это создает данные строки таблицы креветок в журнале регистрации.
@users_logs.map do |dutylog|
[ dutylog.properties["XC"],
dutylog.properties["PIC"],
dutylog.properties["Mountain"]
]
end
Но, поскольку это hstore ... Я не знаю, какие ключи вызывать на производстве. Итак, мне нужно сделать вышеупомянутую динамику итерации.
Я пробовал, без успеха, перебирать каждую запись dutylog, затем перебирать каждый уникальный ключ и выводить один «dutylog.properties [x]» для каждого значения ключа ... но это просто выводит массив ключевые значения. Я попытался использовать send() в блоке, но это не помогло.
@users_logs.map do |dutylog|
[ keys(@users_logs).each { |k| dutylog.properties[k] }.join(",") ]
end
Любые идеи о том, как я мог бы создать «dutylog.properties [k]» dynamic?