如何隐藏 pry / rails 输出中的列
How to hide a column in pry / rails output
我将一个图像 blob 写入了数据库中的一个字段,但我不想在查看用户对象时在控制台中看到该输出。
我不需要为应用程序的功能更改或修改输出,这只是为了使用控制台进行调试/开发。我确实尝试了一些序列化概念,但它们对这些目的没有帮助。我还研究了 filter_parameters,它只对日志记录有用,对控制台输出没有帮助。
我正在为 rails 控制台使用 pry-rails gem,如果有任何变化的话。
您需要覆盖该对象的 inspect
方法。
查看 inspect
的默认实现 - 它使用对象的所有属性。您必须将其更改为仅包含您想要显示的 columns/attributes。
您可以使用 select
来做到这一点
User.select(User.attribute_names - ['avatar', 'permalink']).last
如果您经常使用它,我建议您为您的 User
class
声明一个范围
class User < ActiveRecord::Base
scope :pry_scope, ->{ select(User.attribute_names - ['avatar', 'permalink']) }
...
end
然后在您的控制台上使用它:
> User.pry_scope.last
我将一个图像 blob 写入了数据库中的一个字段,但我不想在查看用户对象时在控制台中看到该输出。
我不需要为应用程序的功能更改或修改输出,这只是为了使用控制台进行调试/开发。我确实尝试了一些序列化概念,但它们对这些目的没有帮助。我还研究了 filter_parameters,它只对日志记录有用,对控制台输出没有帮助。
我正在为 rails 控制台使用 pry-rails gem,如果有任何变化的话。
您需要覆盖该对象的 inspect
方法。
查看 inspect
的默认实现 - 它使用对象的所有属性。您必须将其更改为仅包含您想要显示的 columns/attributes。
您可以使用 select
来做到这一点
User.select(User.attribute_names - ['avatar', 'permalink']).last
如果您经常使用它,我建议您为您的 User
class
class User < ActiveRecord::Base
scope :pry_scope, ->{ select(User.attribute_names - ['avatar', 'permalink']) }
...
end
然后在您的控制台上使用它:
> User.pry_scope.last