%在以下代码中做了什么?

use*_*194 5 ruby ruby-on-rails ruby-on-rails-3

我正在阅读"Rails 3 Way"和第39页,它显示了匹配:to =>重定向方法的代码示例.在该方法中,存在以下代码.虽然我知道模数对数字有什么作用,但我不确定%在下面做了什么,因为路径和参数都显然不是数字.如果有人能帮我理解在这种情况下使用%,我会很感激.

proc { |params| path % params }
Run Code Online (Sandbox Code Playgroud)

tad*_*man 10

这可能是与其他语言String#%非常相似的方法sprintf:

'%05d' % 10
# => "00010"
Run Code Online (Sandbox Code Playgroud)

它可以采用单个参数或数组:

'%.3f %s' % [ 10.341412, 'samples' ]
# => "10.341 samples"
Run Code Online (Sandbox Code Playgroud)

更新:正如菲利普所指出的,这种方法也需要哈希:

'%{count} %{label}' % { count: 20, label: 'samples' }
# => "20 samples"
Run Code Online (Sandbox Code Playgroud)

当然,这是假设path是一个字符串.在Ruby中,除非您仔细阅读代码,否则您永远不会确定.这不太可能,但它可能%意味着模数.

可以肯定的一点是它的调用方法%path.