【发布时间】:2020-05-11 11:20:02
【问题描述】:
我想在特定条件下使特定控制器的日志静音。对于@product,有一个@product.sensitive(布尔值)属性。如果@product.sensitive == true,我希望#show-controller 不记录任何内容。这就是解决没有条件(对我来说很好)使所有日志静音的方法:
def show
Rails.logger.silence do
if @product.price > 0
# Do this
else
# Do that
end
end
end
但是,如果我现在希望 Rails.lgger.silence 以 @product.sensitive == true 为条件呢?我做不到:
def show
if @product.sensitive
Rails.logger.silence do
end
if @product.price > 0
# Do this
else
# Do that
end
end
if @product.sensitive
end
end
end
那么,哇,我要解决这个问题吗?我想有两种不同的解决方案:要么只有在@product.sensitive == true 的条件下激活循环,要么以任何其他方式简单地禁用记录器(并在控制器结束时重新激活它)。
我有什么选择?
【问题讨论】:
标签: ruby-on-rails logging