Absolute Url with Link_to

i am using link_to to make links. it is gnerating urls relative to the
path of the page. how do i make absolute urls. i tried using only_path
but it does nto seem to work.

do i need to use url_for?

thanks

When you are e.g. in

http://www.mysite.com/test/sub/hello

(controller: 'test/sub' ; action: 'hello')

and want to link to:

http://www.mysite.com/home

(controller: 'home' ; action: 'index')

One way to do it is to use:

link_to 'home', '/home'

this results in:

<a href="/home">Home</a> (which is relative to root ('/'))

using:

link_to 'home', 'home'

results in:

<a href="home">Home</a>
(which the browser translates into http://www/mysite.com/test/sub/home
  and is not what I wanted)

If you want to use it with a reference to the /home controller, use:

link_to 'Home', :controller => '/home'

From the api.rubyonrails.org documentation for url_for :

i am using link_to to make links. it is gnerating urls relative to the
path of the page. how do i make absolute urls. i tried using only_path
but it does nto seem to work.

A few ways that work for me are:

link_to ‘Home’, ‘/home’ # => <a href=’/home’>Home</a>
link_to ‘Home’, ‘http://www.mysite.com/home’ # => <a href=‘http://
www.mysite.com/home’>Home</a>
link_to ‘Home’, :controller => ‘/home’ # note the ‘/’ in front of
home <a href=’/home’>Home</a>

do i need to use url_for?

link_to already uses url_for if I understand well.

only_path is used to make URL's relative to the root (first '/') of
this URL.
Is useful when behind a proxy (e.g. an SSL proxy).

Much more info can be found on http://api.rubyonrails.org searching
the method:

  url_for (ActionController::Base)

HTH,

Peter