2

Ruby で REST クライアントを実装しており、ベース URL を URI のインスタンスとして扱っています。ベース URL の後のパスについては、これも URI インスタンスとして扱うか、文字列として扱うかがわかりません。

アプローチA

base_url = URI("http://www.foo.com")
path = URI("/someaction")

アプローチB

base_url = URI("http://www.foo.com")
path = "/someaction"

上記の両方のアプローチで、リクエストを行う前に URI.join(base_url, path) を呼び出す予定です。どのアプローチがより良い方法と考えられますか?

4

1 に答える 1

1

あなたは心配する価値のないことを心配しています。URI が得意とすること、およびそのように設計されていることを URI に任せます。

base_url = URI("http://www.foo.com")
base_url.path = "/someaction"

base_url
=> #<URI::HTTP:0x00000102079d58 URL:http://www.foo.com/someaction>

別のものに移動します。

URL から抽出されたパスを操作する必要がある場合は、File クラスのsplitbasenameextnameおよびを参照してください。dirname彼らは標準化された素晴らしい方法でそれを行います。

于 2013-06-07T17:46:47.417 に答える