Как скрыть столбец в выводе pry / rails
У меня есть блоб изображения, записанный в поле в БД, но я не хочу видеть этот вывод в консоли при просмотре объекта пользователя.
Мне не нужно, чтобы выходные данные изменялись или модифицировались для функционирования приложения, это просто для отладки / разработки с помощью консоли. Я попробовал некоторые концепции сериализации, но они не помогают в этих целях. Я также посмотрел на filter_parameters, которые полезны только для регистрации, а не для вывода консоли.
Я использую драгоценный камень для консоли, если это что-то изменит.
3 ответа
Вам нужно будет переопределить inspect
метод для объекта. Посмотрите на реализацию по умолчанию inspect
- он использует все атрибуты объекта. Вам придется изменить это, чтобы включить только те столбцы / атрибуты, которые вы хотите показать.
Возможно, немного опоздал, но в текущих версиях ActiveRecord самым чистым решением было бы перезаписатьattribute_for_inspect
, например
def attribute_for_inspect(attr_name)
return 'SKIPPED' if attr_name == :blob
super
end
Ты можешь использовать 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