GOOGLE ADS

jeudi 14 avril 2022

montrant un mage par défaut au démarrage si les images ne sont pas attachées

Je suis dans un carrousel bootstrap, je veux appeler une méthode qui jouera les images dans le carrousel SI elles sont attachées et qui jouera une image par défaut (dans le carrousel) SI elles ne sont pas attachées.

Voici ma méthode:

def bien_picture_carousel
if images.attached?
images.each do |image|
image.key
end
else
"bien-par_defaut_shvulu"
end
end

Voici mon itération de carrousel bootstrap (mon carrousel fonctionne parfaitement bien sans l'appel de la méthode)

<% @bien.images.each.with_index do |image, i| %>
<div class="carousel-item >
<%= cl_image_tag @bien.bien_picture_carousel%> **<--- error is on this line**
</div>
<% end %>

Problème: J'ai ce message d'erreur: « pas de conversion implicite d'ActiveStorage::Attachment en String »

Je ne comprends pas vraiment ce message d'erreur. Que puis-je faire pour que ça marche?

ÉDITER:

J'ai mis à jour mon approche:

 <div class="carousel-inner">
<% if @bien.images.attached? %>
<% @bien.images.each.with_index do |image, i| %>
<div class="carousel-item" >
<%= cl_image_tag image.key%>
</div>
<% end %>
<% else %>
<% @bien.images.each.with_index do |image, i| %>
<div class="carousel-item" >
<%= cl_image_tag "bien-par_defaut_shvulu" %>
</div>
<% end %>
<% end %>

La partie else ne s'affiche pas à l'écran


Solution du problème

Résolu,

une classe active manquait.

j'ai remplacé

 <% else %>
<div class="carousel-item" >
<%= cl_image_tag "bien-par_defaut_shvulu" %>
</div>
<% end %>
<% end %>

par

<% else %>
<div class="carousel-item active" >
<%= cl_image_tag "bien-par_defaut_shvulu" %>
</div>
<% end %>

Aucun commentaire:

Enregistrer un commentaire

Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique&nbsp;?

Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...