【发布时间】:2012-03-01 23:30:54
【问题描述】:
Ruby 和 ROR 的新手并且每天都喜欢它,所以这是我的问题,因为我不知道如何用谷歌搜索它(我已经尝试过 :))
我们有方法
def foo(first_name, last_name, age, sex, is_plumber)
# some code
# error happens here
logger.error "Method has failed, here are all method arguments #{SOMETHING}"
end
所以我正在寻找将所有参数传递给方法的方法,而不列出每个参数。由于这是 Ruby,我认为有一种方法 :) 如果是 java 我会列出它们 :)
输出将是:
Method has failed, here are all method arguments {"Mario", "Super", 40, true, true}
【问题讨论】:
-
Reha kralj svegami!
-
我认为所有答案都应该指出,如果“某些代码”在运行参数发现方法之前更改了参数的值,它将显示新值,而不是传递的值因此,您应该立即抓住它们以确保安全。也就是说,我最喜欢的单线(归功于之前的答案)是:
method(__method__).parameters.map { |_, v| [v, binding.local_variable_get(v)] }
标签: ruby-on-rails ruby