我的 Sinatra 应用程序中有这个过滤器:
before '/:locale/*' do
# stuff...
request.path_info = params[:splat]
end
换句话说,我只想获取 URL 的区域设置部分,然后让应用程序继续运行,就好像它不存在一样。(当然在渲染视图时使用语言环境。)
这在 Ruby 1.8.7 下可以正常工作,但在 >=1.9 时会中断,因为 splat 现在是一个包含一个项目的数组,而不仅仅是一个字符串。我不得不使用params[:splat].first
它来使它工作。
我的问题只是这种差异来自哪里。它只是一个 Ruby 1.8 与 1.9 的东西吗?或者 Sinatra 是否以某种方式参与其中?
只是希望将来能够更轻松地修复这种事情。