0

我有一个启用了 postgis 的数据库,它有一些记录(在给定的表中,有很多)具有巨大的:spatial列值。

我经常awesome_print在工作时使用 gem 快速查看记录。它着色并很好地显示给定的记录(或记录)信息,以便快速查看。这种情况下的问题是,99% 的终端显示器都致力于以 WKT 格式显示这些空间列的多页长度坐标列表。

我希望 activerecord 在使用ap(真棒打印)命令查看这些对象时不返回这些对象。有没有办法做到这一点而不会破坏其他东西?我可以指示 ActiveRecord 隐藏这些列的值,除非特别要求或要求太多?

4

1 回答 1

1

您需要以一种或另一种方式指定要打印或不打印的字段。例如,您可以为此定义一个助手并将其放在您的控制台配置文件中,例如:

def ap_article(article, cols=%w[col1 col2 col3])
  ap article.attributes.slice(*cols)
end

或者如果您只想忽略空间列,则可能是这样的

def ap_article(article)
  cols = article.class.columns.select {|c| c.type != :spatial}.map(&:name)
  ap article.attributes.slice(*cols)
end
于 2013-10-15T19:50:20.793 回答