Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- In Rails, how do I determine if two URLs are equal?
- def is_same_controller_and_action?(url1, url2)
- hash_url1 = Rails.application.routes.recognize_path(url1)
- hash_url2 = Rails.application.routes.recognize_path(url2)
- [:controller, :action].each do |key|
- return false if hash_url1[key] != hash_url2[key]
- end
- return true
- end
- def to_canonical(url)
- uri = Addressable::URI.parse(url)
- uri.scheme = "http" if uri.scheme.blank?
- host = uri.host.sub(/www./, '') if uri.host.present?
- path = (uri.path.present? && uri.host.blank?) ? uri.path.sub(/www./, '') : uri.path
- uri.scheme.to_s + "://" + host.to_s + path.to_s
- rescue Addressable::URI::InvalidURIError
- nil
- rescue URI::Error
- nil
- end
- > to_canonical('www.example.com') => 'http://example.com'
- > to_canonical('http://example.com') => 'http://example.com'
- uri = Addressable::URI.parse("http://www.詹姆斯.com/")
- uri.normalize
- #=> #<Addressable::URI:0xc9a4c8 URI:http://www.xn--8ws00zhy3a.com/>
Advertisement
Add Comment
Please, Sign In to add comment