什么是在一行中写这样的东西的好方法。目标是在 Debug模式下如果值为 nil 则在信息级别记录消息,以及显示的正确消息。看起来很简单,但是为这样的小东西写 5 行代码一直困扰着我。我可以用方法包装它,但如果可以的话我想避免。谢谢。
if value.nil?
Rails.logger.info "value: nil"
else
Rails.logger.debug "value: #{value.inspect}"
end
最佳答案
value.nil? ? (Rails.logger.info "value: nil") : (Rails.logger.debug "value: #{value.inspect}")
您可以尝试另一种方法(这不相同,但相似):
Rails.logger.send (value.nil? ? :info : :debug), "value: #{value.inspect}"
但我认为最好的方法是编写自己的记录器,它会自动决定写入哪个流的变量:
NullLogger.log value
关于ruby-on-rails - 在一行中编写此 ruby 代码的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11119682/