1

如果我做:

conn = Faraday.new(url: 'http://example.com/api') do |builder|
  builder.adapter :httpclint
end

/api它从基本 url中删除并conn.host返回"example.com". 当我后来这样做时:

conn.post { |req| req.url '/resource'...}

它调用example.com/resource, 而不是example.com/api/resource. 我怎样才能改变它,这样它就不会削减基本网址?

我知道我可以用 only 初始化它,example.com然后执行以下操作:

conn.post { |req| req.url '/api/resource'...}

但我想将基本 url 存储在全局配置中,以便在代码中只使用资源的名称。

4

1 回答 1

5

省略请求开头的正斜杠,它将与您提供的初始 URL 相关。否则,它将从主机的根目录开始:

conn.post { |req| req.url 'resource'...}  # Treated as example.com/api/resource
conn.post { |req| req.url '/resource'...} # Treated as example.com/resource

这是设计使然(请参阅此 GitHub 问题

于 2014-07-31T16:00:42.580 回答