ruby-on-rails 在Rails控制台中隐藏/截断长属性

rlcwz9us  于 2023-03-31  发布在  Ruby
关注(0)|答案(2)|浏览(154)

对于博客模型,我将RSS字段保存为Blog.rss下的文本,问题是,其中一些相当长,并且每个字段都在我在rails控制台中工作时打印出来,即:Blog.last(10) .
有没有一种方法可以隐藏输出,除非我特别调用someblog.rss

jw5wzhpr

jw5wzhpr1#

我遇到了类似的问题,并在另一个论坛上收到了一些解决方案,其中包括:

  • 使用select获取所需的列
  • 如果你有一个很长的列(我有一个来自webhook的JSON数据结构,把控制台弄得一团糟),考虑一下你是否真的需要它,如果不需要,不要把它存储在表中
  • 或者,考虑将其存储在关联表中
  • 如果你需要整个对象,但只是想改变它在控制台/日志输出中的表示方式,你可以重新定义inspect
  • yourobject.as_json(except: :unwanted_column)

还有

dwbf0jvd

dwbf0jvd2#

你可以覆盖Blog模型中的#inspect方法。当在console中引用一个对象时,这段代码会截断它打印的字符串。

def inspect
    inspection = super
    inspection[0..300] + ((inspection.length > 300) ? "..." : "")
  end

相关问题