How do I get the current absolute URL in Ruby on Rails?

Jakub Arnold picture Jakub Arnold · Jan 29, 2010 · Viewed 496.4k times · Source

How can I get the current absolute URL in my Ruby on Rails view?

The request.request_uri only returns the relative URL.

Answer

Jaime Bellmyer picture Jaime Bellmyer · Jan 29, 2010

For Rails 3.2 or Rails 4+

You should use request.original_url to get the current URL.

This method is documented at original_url method, but if you're curious, the implementation is:

def original_url
  base_url + original_fullpath
end

For Rails 3:

You can write "#{request.protocol}#{request.host_with_port}#{request.fullpath}", since request.url is now deprecated.


For Rails 2:

You can write request.url instead of request.request_uri. This combines the protocol (usually http://) with the host, and request_uri to give you the full address.