抛开笑话,我有一个奇怪的情况,我有一些代码:
def remotes(form,remotes)
personalised_form = form.dup
remotes.each do |ident,remote|
object = yield(ident)
result = remote.call(object)
insert_into_(personalised_form,ident,result)
end
personalised_form
end
Run Code Online (Sandbox Code Playgroud)
而且我看到它是否如此工作:
pp remotes(forms,remotes) do |ident|
case(ident)
when :get_assets
'@Userobject'
end
end
Run Code Online (Sandbox Code Playgroud)
问题是,ruby似乎认为我没有将一个块传递给该remotes函数.
为什么红宝石坚持认为我没有通过一个街区?(它no block given (yield) (LocalJumpError)具体给出了).
认为它不相关,遥控器是包含键和Proc的散列,而形式只是一个特定结构的散列,其中使用ident插入proc的结果来定位正确的插入点
Ruby认为你将块传递给pp方法,它只是忽略它.尝试:
res = remotes(forms,remotes) do |ident|
case(ident)
when :get_assets
'@Userobject'
end
end
pp res
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |