如何将请求转发到Sinatra中的不同端点

时间:2015-11-06 22:13:27

标签: ruby sinatra

我有一个端点,对所有表单提交负有单独的责任;然后,此端点将数据发送到表单提交中的数据(例如,来自隐藏字段)给予的正确端点。

我知道在哪里发送数据:

post to /account 

如何直接将服务器接收的数据转发到同一服务器上的另一个端点,而无需重定向?

或者是使用像curb或rest-client这样的HTTP客户端的唯一方法?

1 个答案:

答案 0 :(得分:3)

它看起来并不好看,但你可以尝试这样的事情:

post "/account" do
  call! env.merge('PATH_INFO' => "/another/endpoint")
end

post "/another/endpoint" do
  ...
end

但通常最好提取/another/endpoint中的任何代码并直接从/account端点调用它。 E.g:

post "/account" do
  process_data(...)
end

post "/another/endpoint" do
  process_data(...)
end

def process_data(...)
  ...
end