我有一个hstore列,我用它在Prawn(pdf builder)中构建一个表。数据将包含给定月份的记录。由于它是hstore,所使用的密钥可能每天都在变化,所以这需要是动态的。
我需要确定:
我创建了一个帮助程序来查找本月使用的唯一键。这些将用作列标题。
keys(@users_logs)
# this returns an array like - ["XC", "PIC", "Mountain"]
该表将显示该月的用户dutylog数据。用于测试...如果我明确调用已知的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]”动态的任何想法?
答案 0 :(得分:0)
有点头疼......但结果很容易退出
这将构建Prawn表的行
def hstore_duty_log_rows
[keys(@users_logs)] +
@users_logs.map do |dutylog|
keys(@users_logs).map { |key| dutylog.properties.keys.include?(key) ? "#{dutylog.properties[key]}" : "0" }
end
end