Bei der Implementierung der Funktion zum Anzeigen der als Problem aufgeführten Produkte in einer Liste Ich habe einen bedingten Ausdruck in die if-Anweisung geschrieben
das ist,
etwas wie
if-Anweisung Dies begann mit Leichtigkeit begeistert zu arbeiten Ich beendete das Schreiben und bestätigte das Verhalten ...
items_controller.rb
def index
@items = Item.order('created_at DESC')
end
ruby:index.html.erb
####################↓ In DB gespeicherte Produkte anzeigen ↓####################
<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 %>Kreis<br>(Steuern inklusive)</span>
<div class='star-btn'>
<%= image_tag "star.png ", class:"star-icon" %>
<span class='star-count'>0</span>
</div>
</div>
</div>
<% end %>
</li>
<% end %>
####################↓ Das Folgende sind Dummy-Produkte ↓####################
<% 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'>
Auflistung der Produkte
</h3>
<div class='item-price'>
<span>0 Yen<br>(Steuern inklusive)</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>
"Kurz gesagt, wenn die Datenbank leer ist, sind auch die Instanzvariablen leer, oder?" Es funktionierte basierend auf der Idee
Ich war zu dieser Zeit
Ich erinnere mich, dass ich von dem Wort besessen war Wenn nur das unterdrückt wird ...! Ich war überzeugt, dass es zu mysteriös war, wenn ich jetzt darüber nachdenke
Dann, nach einer Stunde, hatte ich endlich einige Zweifel an mir. "... Vielleicht bedeutet nur, weil die Tabelle leer ist, nicht, dass der Inhalt dessen, was Sie generieren, leer ist, oder?" Und der Inhalt von Params
Ein leerer Wert kann eingegeben werden, und selbst wenn der Inhalt vollständig leer ist, wird er nicht als leer erkannt, wenn das Array vorhanden ist.
Ich muss beweisen, dass es ein leerer Wert ist, aber er ist nicht leer
Ich bat den Ausbilder um Hilfe Die Antwort lautet:
"Wenn der Inhalt der Instanzvariablen leer ist und Sie false zurückgeben möchten, das Array jedoch generiert wird, können Sie beurteilen, ob die Anzahl der Elemente im Array 0 beträgt."
Es war
Mit anderen Worten, so!
ruby:index.html.erb
<ul class='item-lists'>
<% if @items.length != 0 %> #← Hier!
<% @items.each do |item| %>
<li class='list' >
<%= link_to item_path(item.user_id) do %>
#Folgendes wird weggelassen
Mit anderen Worten
etwas wie Durch Übergeben der Anzahl der Arrays in .length und Angabe von! = 0 Wenn es nicht 0 ist, wird true zurückgegeben.
Es gab ein klares und erfrischendes Verständnis, weil mir etwas präsentiert wurde, an das ich nie gedacht hatte. Zur gleichen Zeit gab es auch das Bedauern, dass ich dachte: "Hast du es bemerkt?"
Die diesmal gewonnene Lektion bezieht sich nicht auf eine Idee Um Dinge aus der Vogelperspektive zu sehen