Bir Ruby programında iki URI var. Birincisi mutlak bir URI ve diğeri mutlak veya göreceli olabilir. Birincisini mutlak bir URI'ye ilk bağlamda döndürmek isterim, bu yüzden eğer ilk olan http://pupeno.com/blog ise ve ikincisi ise http://pupeno.com/about olmalıdır. Herhangi bir fikir nasıl yapılır?Bir Ruby bağlamında olası bir göreli URI'yi değerlendirmek
5
A
cevap
11
İkisi Ruby'nin URI dahili ve Addressable mücevher, bu kısa çalışma yapar. Adreslenebilir olmayı tercih ederim çünkü daha çok özellikli ancak URI yerleşik.
require 'uri'
URI.join('http://pupeno.com/blog', '/about') # => #<URI::HTTP:0x00000101098538 URL:http://pupeno.com/about>
veya
require 'addressable/uri'
uri = Addressable::URI.parse('http://pupeno.com/blog')
uri.join('/about') # => #<Addressable::URI:0x806704a0 URI:http://pupeno.com/about>
bazı aklı iade adresi aklı başında olduğundan emin olmak için kontrol yapmak, çünkü verilen join
yöntemlerini kullanmak iyi bir fikirdir
join
bunu dikkate alır ve hangisi uygunsa, yerini alacak veya birleştirecektir.
1
Bu yapacağım:
require 'uri'
url=URI.parse('http://pupeno.com/blog')
=> #<URI::HTTP:0x00000100e35368 URL:http://pupeno.com/blog>
ruby-1.9.2-p0 > url.path="/about"
=> "/about"
ruby-1.9.2-p0 > url
=> #<URI::HTTP:0x00000100e35368 URL:http://pupeno.com/about>
Bu yaklaşımdaki sorun, ikinci dizenin de mutlak bir URI olabileceğidir. – Pablo
oops, Bunu açıklamadan anlamadım – eggie5