2011-11-25 63 views
39

我有以下代码:如何添加类的IMAGE_TAG轨帮手

<%= image_tag iterator.image.url(:small), :class => "img_preview" %> 

但是呈现的HTML显示:

<img src="/actives/hotels/13/small/clean_wave.jpg?1317675452" alt="Clean_wave"> 

为什么 “class” 属性,不是吗?

谢谢!

+2

因为你的括号也许周围(:小)...尝试IMAGE_TAG(iterator.image。 url(:small),:class =>“img_preview”)(括号全部都是) – Damien

+0

Noup ....那也不管用= S – content01

+1

我用这种方式,这里有效。 '<%= image_tag'delete.png',:class =>“ajax-delete”%>' 'Delete' –

回答

83

您的课程必须在方括号内进行分配,以用作要传递的选项的一部分。尝试:

<%= image_tag(iterator.image.url(:small), :class => "img_preview") %> 
+1

通过这种方式,您可以将':class'选项传递给'url'方法,这很不可能工作(为什么'url'方法会知道它使用了什么HTML标记?)。我有一种感觉,你真正的意思是'image_tag(iterator.image.url(:small),:class =>“img_preview”)'。 –

+0

Urg。你是对的。一直盯着我的屏幕太久。 – Simpleton

6

对于像我这样的新手,继承人清洁版本较新的轨道语法:

<%= image_tag iterator.image.url(:small), class:"img_preview" %> 
+0

接受的代码有效,但这是更清洁。谢谢! – skwidbreth

+0

要挑剔,在'class'和'“img_preview”'之间应该有一个空格。另外,这个语法是从Ruby 1.9+开始的,它并不是Rails特有的(只是Ruby本身)。但是,这是更好的:) – BalinKingOfMoria