J'ai un objet blob d'image écrit dans un champ de la base de données, mais je ne veux pas voir cette sortie dans une console lorsque j'affiche l'objet utilisateur.

Je n'ai pas besoin que la sortie soit changée ou modifiée pour le fonctionnement de l'application, c'est JUSTE pour le débogage / développement avec la console. J'ai essayé certains des concepts de sérialisation, mais ils ne sont pas utiles à ces fins. J'ai également examiné les paramètres filter_parameters qui ne sont utiles que pour la journalisation et non pour la sortie de la console.

J'utilise le joyau pry-rails pour la console des rails, si cela change quelque chose.

2
trh 17 janv. 2017 à 18:11

2 réponses

Meilleure réponse

Vous devrez remplacer la méthode inspect pour l'objet. Jetez un œil à l'implémentation par défaut de inspect - il utilise tous les attributs de l'objet. Vous devrez changer cela pour n'inclure que les colonnes / attributs que vous souhaitez afficher.

0
eugen 17 janv. 2017 à 15:29

Vous pouvez utiliser select pour faire cela

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

Si vous l'utilisez fréquemment, je vous suggère de déclarer une portée pour votre classe User

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

Puis utilisez-le sur votre console:

> User.pry_scope.last
0
sa77 17 janv. 2017 à 15:38