2017-07-27 4 views
2

J'essaie d'utiliser un attribut srcset à l'intérieur d'un image_tag mais je n'arrive pas à le faire fonctionner.En utilisant image_tag avec l'attribut srcset?

Je ne sais pas s'il s'agit d'une erreur de syntaxe ou si elle ne fonctionne généralement pas dans une image_tag.

Est-il possible d'utiliser un attribut srcset dans une image_tag?

Si oui, comment? Et sinon pourquoi pas et existe-t-il une solution de contournement?

<%= link_to(image_tag("logo.png", alt: "logo", :id => "logo"), root_path) %> 

Répondre

1

Au lieu d'ajouter l'image_tag dans l'option link_to name vous pouvez utiliser un bloc et passez votre image là-bas.

Si vous souhaitez utiliser un srcset attribut que vous pouvez « étendre » la fonctionnalité de image_tag en créant une aide:

def image_set_tag(source, srcset = {}, options = {}) 
    srcset = srcset.map { |src, size| "#{path_to_image(src)} #{size}" }.join(', ') 
    image_tag(source, options.merge(srcset: srcset)) 
end 

Il se joindra par une virgule, chaque taille, vous pouvez faire:

<%= link_to root_path do %> 
    <%= image_set_tag 'logo.jpg', { 
    'logo_640.jpg' => '640w', 
    'logo_1024.jpg' => '1024w', 
    'logo_1980.jpg' => '1980w' 
    }, sizes: '100vw', alt: 'logo', id: 'logo' %> 
<% end %> 
+0

Merci beaucoup cela a fonctionné! :) – trickydiddy