Hem*_*ock 5 ruby jruby sinatra
我正在编写一条将多个路由的响应捆绑在一起的路由,因此我需要从Sinatra内触发其他路由。我在Sinatra自述文件中找到了以下代码来做到这一点:
status, headers, body = call env.merge("PATH_INFO" => '/bar')
Run Code Online (Sandbox Code Playgroud)
但是,它不发送查询字符串。所以我尝试了这个:
status, headers, body = call env.merge(
"PATH_INFO" => '/bar',
"QUERY_STRING" => 'param=1'
)
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用。如何调用另一个路由并传递查询字符串,使得字符串中的值最终位于被调用路由的params哈希中。
我们正在使用Sinatra 1.3.1和Rack 1.3.5。
所以解决办法就是清除该@original_params变量。显然,即使它出现在 Sinatra README 中,这也是不受支持的。如果时间允许,我会重新设计我的路线,所以这不是必需的,但你已经完成了。
@original_params = nil
status, headers, body = call env.merge(
"PATH_INFO" => '/bar',
"QUERY_STRING" => 'param=1'
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1633 次 |
| 最近记录: |