0

我想使用 hstore 键作为表列标题。我的方法是简单地映射一个 rails 查询,该查询将返回来自多个记录的所有键,然后将 uniq 的键打印到数组中。

我将在 Prawn 中构建表格,同时使用静态和动态列标题......就像这样......但是,这当然不起作用。

 [["DATE", "LOCATION", "DAY OFF", "START", "END" + @users_options.select("properties").map { |k,v| ",#{k}" }]]

如何遍历用户日志并仅输出 uniq 键?

我刚试过这个......似乎很接近......但还没有工作

 a = []
 user.useroptions.select(:properties).collect{ |k,v| a << k }
4

2 回答 2

0

我创建了一个辅助方法:

def keys(user)
  keys = []
  user.useroptions.select(:properties).each do |opt| 
    a = opt.properties.keys
    keys << a
  end

  keys.flatten.uniq
end

这会遍历所有 hstore 记录,获取键,然后展平散列,并仅放置 uniq 值

于 2013-07-16T20:53:46.047 回答
0

为了完成这个,我将静态数组项移动到帮助程序中并使用了“unshift”方法......所以我将一个数组吐出给虾表构建器。

def keys(user)
  keys = []
  user.useroptions.select(:properties).each do |opt| 
    a = opt.properties.keys
    keys << a
 end

 keys.flatten.uniq

结尾

keys.flatten.uniq.unshift("DATE", "LOCATION", "DAY OFF", "START", "END")

然后我把我的帮手滑进虾桌

    [keys(@users_logs)] +

    ....table rows
于 2013-07-16T21:12:56.087 回答