如果我在 ruby 中有一个采用命名参数的方法......
def smoosh(first: nil, second: nil)
first + second
end
如果键匹配,将哈希传递给该方法的最简单方法是什么:
params = { first: 'peanut', second: 'butter' }
smoosh(params)
上面会产生一个参数错误。
更新:
似乎这可能是 Sinatra 参数如何工作的问题。
当我做:
get 'a_sinatra_route' do
hash = params.clone
hash.symbolize_keys!
smoosh(hash)
end
它工作正常。仅自行传递参数时它不起作用。(即使您可以使用符号键访问各个参数params[:attr]
)