[typo] Where to get relative links within a view template?

de Villamil Frédéric frederic at de-villamil.com
Mon Mar 23 06:47:43 EDT 2009


Le 23 mars 09 à 11:16, Tobias Weisserth a écrit :

> Hi everybody,
>
> in my view templates, I have a meta navigation bar in the header,  
> that renders links to the administration login page, an about page  
> and an imprint page. So far, I hard-coded these links. This is bad.
>
> So what's the proper way to generate these links? The link to the  
> admin page should be easy as it is static. I thought about using the  
> Blog class, I noticed a method there to retrieve the base url and  
> just concatenate the admin page behind that.
>
> Would I need to come up with some kind of plugin that does the rest,  
> thus generating links to pages? Or can I touch the routes/controller  
> behaviour to create a mapping there manually after creating the  
> pages I need (about, imprint)?
>
> thanks,
>
> Tobias W.


Hi Tobias,

We have some very helpful helpers to help (obvious heh) us make nice,  
not hardcoded links in our views. The most important is base_url,  
which is included into this_blog.

So to get to your admin, I would use:

<%= link_to "Admin", "#{this_blog.base_url}/admin" %>

You also have link_to_permalink which is kinda helpful. For example,  
with pages, you can do:

<% pages = Page.find(:all, :conditions => {:state => 'published'}) %>
<% pages.each do |page| %>
<%= link_to_permalink(page, page.title) %>
<%end%>

And so on...

Cheers,
Frédéric

-- 
Frédéric de Villamil
"What's mine is mine. What's yours is still unsetteled" – Go player  
proverb
frederic at de-villamil.com                        tel: +33 (0)6 62 19 1337
http://t37.net				             	Typo : http://typosphere.org



More information about the Typo-list mailing list