Lors de la mise en œuvre de la fonction d'affichage des produits répertoriés comme problème dans une liste J'écrivais une expression conditionnelle dans l'instruction if
C'est,
quelque chose comme
si déclaration Cela a commencé à fonctionner avec enthousiasme avec facilité J'ai fini d'écrire et j'ai confirmé le comportement ...
items_controller.rb
def index
@items = Item.order('created_at DESC')
end
ruby:index.html.erb
####################↓ Afficher les produits enregistrés dans la base de données ↓####################
<ul class='item-lists'>
<% if @items %>
<% @items.each do |item| %>
<li class='list' >
<%= link_to item_path(item.user_id) do %>
<div class='item-img-content'>
</div>
<div class='item-info'>
<h3 class='item-name'>
<%= item.name %>
</h3>
<div class='item-price'>
<span><%= item.price %>Cercle<br>(taxe inclu)</span>
<div class='star-btn'>
<%= image_tag "star.png ", class:"star-icon" %>
<span class='star-count'>0</span>
</div>
</div>
</div>
<% end %>
</li>
<% end %>
####################↓ Ce qui suit sont des produits factices ↓####################
<% else %>
<li class='list'>
<%= link_to '#' do %>
<%= image_tag "https://s3-ap-northeast-1.amazonaws.com/mercarimaster/uploads/captured_image/content/10/a004.png ", class: "item-img" %>
<div class='item-info'>
<h3 class='item-name'>
Liste des produits
</h3>
<div class='item-price'>
<span>0 yen<br>(taxe inclu)</span>
<div class='star-btn'>
<%= image_tag "star.png ", class:"star-icon" %>
<span class='star-count'>0</span>
</div>
</div>
</div>
<% end %>
</li>
<% end %>
</ul>
</div>
"En bref, si le DB est vide, les variables d'instance seront également vides, non?" Cela fonctionnait sur la base de l'idée
J'étais à ce moment-là
Je me souviens avoir été obsédé par le mot Si seulement cela est supprimé ...! J'étais convaincu que c'était trop mystérieux quand j'y pense maintenant
Puis, au bout d'une heure, j'ai enfin eu quelques doutes en moi. "... Peut-être que ce n'est pas parce que la table est vide que le contenu de ce que vous générez sera vide, non?" Et le contenu des paramètres
Une valeur vide peut être saisie, et même si le contenu est complètement vide, il ne sera pas reconnu comme vide lorsque le tableau existe.
Je dois prouver que c'est une valeur vide, mais ce n'est pas vide
J'ai demandé de l'aide à l'instructeur La réponse renvoyée est
"Si le contenu d'une variable d'instance est vide et que vous voulez renvoyer false, mais qu'un tableau est créé, pourquoi ne pas juger si le nombre d'éléments dans le tableau est 0?"
C'était
En d'autres termes, comme ça!
ruby:index.html.erb
<ul class='item-lists'>
<% if @items.length != 0 %> #← Ici!
<% @items.each do |item| %>
<li class='list' >
<%= link_to item_path(item.user_id) do %>
#Ce qui suit est omis
En d'autres termes
quelque chose comme En passant le nombre de tableaux dans .length et en spécifiant! = 0 S'il n'est pas égal à 0, true sera renvoyé.
Il y avait une compréhension claire et rafraîchissante parce qu'on m'a présenté quelque chose auquel je n'avais jamais pensé. En même temps, il y avait aussi le regret que je pensais: «Avez-vous remarqué cela?
La leçon apprise cette fois n'est pas liée à une seule idée Pour voir les choses d'une vue plus à vol d'oiseau