Предотвратить возвращение определенных значений столбца при вызове экземпляра активной записи (без ограничения доступа к ним в будущем)

У меня есть база данных, которая включена postgis, которая имеет некоторые записи (в данной таблице их много), которые имеют огромные :spatial значения столбца.

Я часто использую awesome_print драгоценный камень для быстрого просмотра записей во время работы. Он раскрашивает и отображает информацию о конкретной записи (или записи) для быстрого просмотра. Проблема в этом случае состоит в том, что 99% дисплея терминала отводится отображению многостраничного списка координат этого пространственного столбца в формате WKT.

Я бы хотел, чтобы activerecord не возвращал эти объекты при просмотре с помощью ap (удивительная печать) команда. Есть ли способ сделать это, не нарушая что-то еще? Могу ли я просто дать ActiveRecord команду скрыть значения этих столбцов, если это не требуется, или это слишком много, чтобы спрашивать?

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
Другие вопросы по тегам