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
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:
(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