link_to image_tag

Hi all,

Can anyone tell me what it is I've done wrong with the following?

I'm wanting to use images to link to the page in the site.

So I have this:

<%= link_to(image_tag "about.png", :border =>"0", :controller => "site", :action => "about") %>

Unfortunately, the image doesn't link as I'd expected. The page renders, but that's all.

Can anyone help? I know it's probably something REALLY obvious, but i just can pin it down

Many Thanks.

oops...

Spotted the issue:

the correct line should be:

<%= link_to image_tag ("about.png", :border =>"0"), :controller => "site", :action => "about" %>

That works now.

Try placing parentheses around the arguments to each function.

Think about where Ruby is presuming the argument lists are from the punctuation that you've given.

-Rob

Rob Biedenharn Rob@AgileConsultingLLC.com http://AgileConsultingLLC.com/ rab@GaslightSoftware.com http://GaslightSoftware.com/

oops...

Spotted the issue:

the correct line should be:

<%= link_to image_tag ("about.png", :border =>"0"), :controller => "site", :action => "about" %>

That works now.

Well, I'd suggest formatting like:

<%= link_to(image_tag("about.png", :border =>"0"),              :controller => "site", :action => "about") %>

I might leave the parentheses off the call to link_to, but only if it didn't break across lines in the actual source. In fact, since you're using the hash argument form for the url construction, you really could have this and be exactly the same (from a Rails-semantics perspective):

<%= link_to(image_tag("about.png", :border =>"0"),              {:controller => "site", :action => "about"}, {}) %>

I mention this because going back and adding an option that you expect to be given to link_to can easily be given to the underlying call to url_for that happens inside the link_to helper.

You might want to take a look at an old article by James Edward Gray II

Enjoy your Ruby! (and Rails)

-Rob

Great - thanks for the feedback.... :slight_smile: