Как скрыть столбец в выводе pry/rails

У меня есть большой двоичный объект изображения, записанный в поле базы данных, но я не хочу видеть этот вывод в консоли при просмотре пользовательского объекта.

Мне не нужно изменять или модифицировать вывод для функционирования приложения, это ТОЛЬКО для отладки/разработки с помощью консоли. Я попробовал некоторые концепции сериализации, но они бесполезны для этих целей. Я также просмотрел filter_parameters, которые полезны только для ведения журнала, а не для вывода консоли.

Я использую гем pry-rails для консоли rails, если это что-то меняет.


person trh    schedule 17.01.2017    source источник


Ответы (2)


Вам нужно будет переопределить метод inspect для объекта. Взгляните на реализацию по умолчанию inspect - использует все атрибуты объекта. Вам придется изменить это, чтобы включить только те столбцы/атрибуты, которые вы хотите отобразить.

person eugen    schedule 17.01.2017

вы можете использовать select для этого

User.select(User.attribute_names - ['avatar', 'permalink']).last

если вы часто используете это, я бы посоветовал вам объявить область действия для вашего класса User.

class User < ActiveRecord::Base
  scope :pry_scope, ->{ select(User.attribute_names - ['avatar', 'permalink']) }
  ...
end

затем используйте его на своей консоли:

> User.pry_scope.last
person sa77    schedule 17.01.2017