2011-11-25 12 views
39

Ho il seguente codice:Come aggiungere classe a un image_tag rotaie aiutante

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

Ma il rendering HTML mostra:

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

Perché l'attributo "class" non c'è?

Grazie!

+2

Forse a causa delle vostre parentesi attorno (: piccola) ... Prova image_tag (iterator.image. url (: small),: class => "img_preview") (con parentesi tutto intorno) – Damien

+0

Noup .... che non ha funzionato o = S – content01

+1

Io uso in questo modo, qui funziona. '<% = image_tag 'delete.png',: class =>" ajax-delete "%>' 'Delete' –

risposta

83

La classe deve essere assegnata all'interno delle parentesi da utilizzare come parte delle opzioni da passare. Prova:

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

In questo modo si passa l'opzione ': class' al metodo' url', che è molto improbabile che funzioni (perché il metodo 'url' non ha alcuna conoscenza di quale tag HTML viene utilizzato?). Ho la sensazione che quello che volevi dire fosse 'image_tag (iterator.image.url (: small),: class =>" img_preview ")'. –

+0

Urg. Hai ragione. Sono stato a guardare il mio schermo per troppo tempo. – Simpleton

6

Per i neofiti come me, ecco una versione più pulita con la sintassi rotaie più recente:

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

Il codice accettato funziona, ma questo è più pulito. Grazie! – skwidbreth

+0

Per essere nitpicky, ci dovrebbe essere uno spazio tra 'class' e' "img_preview" '. Inoltre, questa sintassi proviene da Ruby 1.9+ e non è specifica di Rails (solo Ruby stesso). Ma sì, questo è più bello :) – BalinKingOfMoria

Problemi correlati