Erika
Erika

Reputation: 2065

Add image to layout in ruby on rails

I would like to add an image in my template for my ruby on rails project where i currenly have the code <img src="../../../public/images/rss.jpg" alt="rss feed" /> in a the layout stores.html.erb file however this doesn't seem to load as it looks like its missing a route which i'm not sure what its supposed to be.

Any ideas please?

Upvotes: 76

Views: 179694

Answers (6)

Alonso Huayta Laura
Alonso Huayta Laura

Reputation: 1

image_tag is the best way to do the job friend

Upvotes: -2

ArtEm
ArtEm

Reputation: 937

It's working for me:

<%= image_tag( root_url + "images/rss.jpg", size: "50x50", :alt => "rss feed") -%>

Upvotes: 1

Palermo Andre Deschamps
Palermo Andre Deschamps

Reputation: 1831

simple just use the img tag helper. Rails knows to look in the images folder in the asset pipeline, you can use it like this

<%= image_tag "image.jpg" %>

Upvotes: 3

Agung Kessawa
Agung Kessawa

Reputation: 563

When using the new ruby, the image folder will go to asset folder on folder app

after placing your images in image folder, use

<%=image_tag("example_image.png", alt: "Example Image")%>

Upvotes: 6

scottd
scottd

Reputation: 7474

In a Ruby on Rails project by default the root of the HTML source for the server is the public directory. So your link would be:

<img src="images/rss.jpg" alt="rss feed" />

But it is best practice in a Rails project to use the built in helper:

<%= image_tag("rss.jpg", :alt => "rss feed") %>

That will create the correct image link plus if you ever add assert servers, etc it will work with those.

Upvotes: 14

Doug Neiner
Doug Neiner

Reputation: 66191

Anything in the public folder is accessible at the root path (/) so change your img tag to read:

<img src="/images/rss.jpg" alt="rss feed" />

If you wanted to use a rails tag, use this:

<%= image_tag("rss.jpg", :alt => "rss feed") %>

Upvotes: 146

Related Questions