[RUBY] [Schienen] So zeigen Sie Bilder in der Ansicht an

Dies ist der erste Beitrag. Ich denke, es gibt einige Punkte, die nicht erreicht werden können, daher würde ich es begrüßen, wenn Sie mit warmen Augen darüber wachen könnten ...

Ich hatte große Probleme mit der Anzeige von Bildern in Rails, daher habe ich sie als Memo aufgezeichnet. Lass uns jetzt besuchen!

So zeigen Sie ein Bild an Zunächst, wie das Bild auf dem Standard angezeigt wird. Es scheint angezeigt zu werden, unabhängig davon, ob es in haml oder scss geschrieben ist. Ich denke, die richtige Antwort ist, welche man schreibt.

Als persönlicher Eindruck, wenn Sie ein Bild als Hintergrund verwenden möchten, Zum Beispiel, wenn Sie Textinformationen zu einem Bild anzeigen möchten. In einem solchen Fall ist es besser, es in scss als Hintergrundbild zu beschreiben. Ich verstehe den Unterschied hier nicht wirklich. Wenn Sie den Unterschied verstehen können, bringen Sie mir bitte bei: Stirnrunzeln2:

Zunächst muss ein Bild angezeigt werden. app/assets/images Speichern Sie das Bild, das Sie anzeigen möchten, in diesem Verzeichnis und Sie können loslegen.

Beim Schreiben in haml

Dateiname.html.haml


= image_tag ("Bildname.jpg ")

Ich kann es noch nicht anzeigen. Es wird nur angezeigt, wenn Sie die Breite und Höhe eingestellt haben. In einem solchen Fall muss eine Beschreibung geschrieben werden, um das Bild in scss anzuordnen.

_Dateiname.scss


        img {
          width: 100%;
          height: 100%;
        }

Wenn Sie also Breite: 100% und Höhe: 100% angeben, wird dies sicher angezeigt. In diesem Fall ist es "%", aber "px" ist auch möglich! Beim Schreiben in haml ist "= image_tag" unerlässlich.

Beim Schreiben in scss

_Dateiname.scss


.Name der Klasse{
  height: 560px;
  width: 100%;
  background-image: image-url("Dateiname.jpg ");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: top center;
}

Sie können es anzeigen, indem Sie es so schreiben. Wenn Sie keine Hintergrundgröße oder Eigenschaften um sie herum schreiben, Das Bild wird "Baaaaaaaaa" sein. (Elend) Danach müssen Sie auch die Breite und Höhe einstellen. Sie müssen die Eigenschaft auswählen, die dem zu implementierenden Image entspricht.

Das Bild wird nicht nur in der Produktionsumgebung angezeigt Es wird in der lokalen Umgebung angezeigt, aber nicht in der Produktionsumgebung ... Es gibt Zeiten, in denen.

Klicken Sie hier, um den Code anzuzeigen, der nicht angezeigt werden kann

_Dateiname.scss


.Name der Klasse{
  height: 560px;
  width: 100%;
  background-image: url("Dateiname.jpg ");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: top center;
}

Was unterscheidet sich vom obigen Code

_Dateiname.scss


.Name der Klasse{
  background-image: url("Dateiname.jpg ");
}

Das ist der Teil. Mit dieser Schreibmethode kann es lokal angezeigt werden, wird jedoch in der Produktion nicht angezeigt.

_Dateiname.scss


.Name der Klasse{
  background-image: image-url("Dateiname.jpg ");
}

Durch diese Änderung kann es sowohl in der Produktion als auch lokal angezeigt werden.

Anzeigen von Bildern in der Datenbank Wenn Sie beispielsweise ein Produkt registrieren, können Sie auch ein Bild registrieren. Ich möchte das registrierte Bild anzeigen! !! Dies ist die Methode für einen solchen Fall.

◇ Bedingung 1 ◇ Beim Speichern des Bildes in einer separaten Tabelle Der Grund für das Speichern in einer separaten Tabelle besteht darin, mehrere Bilder zu registrieren. Wenn Sie nur eine registrieren möchten, ist es meiner Meinung nach notwendig, die Tabellen zu trennen.

Controller-Name.rb


  def index
    @items = Item.includes(:item_images).order("created_at DESC").limit(5)
  end

Holen Sie sich Informationen wie diese. In item_images werden die Bilder gespeichert.

Dateiname.html.haml


- @items.each do |item| #Erweitern Sie mit jedem
 = image_tag item.item_images[0].image.url

_Dateiname.scss


        img {
          width: 100%;
          height: 100%;
        }

Ich könnte es anzeigen, indem ich so schreibe. Um ehrlich zu sein, ist die Beschreibung sehr lang ... Ein solcher Eindruck [0] → Es scheint, dass die Bilder in einem Array gespeichert sind, daher müssen Sie die Anzahl der Bilder angeben.

◇ Bedingung 2 ◇ Wenn das Bild nicht in einer anderen Tabelle gespeichert wird Es wird in html.erb beschrieben.

Controller-Name.rb


  def index
    @items = Item.order("created_at DESC").page(params[:page]).per(5)
  end

Holen Sie sich Informationen wie diese.

Dateiname.html.erb


<% @items.each do |item| %>
 <%= image_tag item.image.to_s, :size =>'220x220'%>

Ich habe die Größe in der Datei name.html.erb angegeben. Sie können jetzt sehen: klatschen:

Wenn es eine andere Möglichkeit gibt, es anzuzeigen, lehre mich bitte: bete:

Recommended Posts

[Schienen] So zeigen Sie Bilder in der Ansicht an
[Schienen] Anzeigen von Informationen, die in der Datenbank gespeichert sind
So stellen Sie die Anzeigezeit in Rails auf japanische Zeit ein
[Rails] So zeigen Sie übergeordnete Informationen in der untergeordneten Ansicht in verschachtelten Beziehungen an
So überprüfen Sie Rails-Befehle im Terminal
So machen Sie ein Bild mit Processing teilweise transparent
[Rails 6] So legen Sie ein Hintergrundbild in Rails [CSS] fest
[Rails] So laden Sie JavaScript in einer bestimmten Ansicht
[Rails] Anzeigen von Datenbankinformationen
So installieren Sie jQuery in Rails 6
So installieren Sie Swiper in Rails
So rufen Sie den Hashwert in einem Array in Ruby ab
So zeigen Sie Diagramme in Ruby on Rails an (LazyHighChart)
[Rails] So zeigen Sie eine Liste der Beiträge nach Kategorie an
So installieren Sie Docker in der lokalen Umgebung einer vorhandenen Rails-App [Rails 6 / MySQL 8]
[Rails] So zeigen Sie die Wettervorhersage der registrierten Adresse auf Japanisch mit OpenWeatherMap an
So beschneiden Sie ein Bild in libGDX
So implementieren Sie Suchfunktionen in Rails
[Rails / Routing] So verweisen Sie auf den Controller in Ihrem eigenen Verzeichnis
So ändern Sie den App-Namen in Rails
So verwischen Sie das Bild (super einfach)
So fügen Sie ein Video in Rails ein
[Schienen] Verwendung der Kartenmethode
[Rails] So zeigen Sie Fehlermeldungen einzeln an
So geben Sie den Wert aus, wenn sich ein Array im Array befindet
Verwendung von MySQL im Rails-Tutorial
[Rails] So lassen Sie die Anzeige der Zeichenfolge der link_to-Methode weg
[Rails] So konfigurieren Sie das Routing in Ressourcen
So implementieren Sie Ranking-Funktionen in Rails
So implementieren Sie die Image-Veröffentlichung mithilfe von Schienen
[Rails] Verwendung von video_tag zum Anzeigen von Videos
Verwendung von credentials.yml.enc aus Rails 5.2
Rails6: Extrahieren Sie das Bild im Aktionstext
So ermitteln Sie die Länge einer Audiodatei mit Java
[Rails 5] Anzeigen des Bildschirms zum Ändern des Kennworts bei Verwendung von devise
So zeigen Sie Fehlermeldungen auf Japanisch an
[Swing] So zeigen Sie einen beliebigen Namen in der Menüleiste des Mac an
[Rails] So erhalten Sie die aktuell mit devise angemeldeten Benutzerinformationen
Ich möchte bei der Registrierung in der Datenbank eine Fehlermeldung anzeigen
So debuggen Sie die Verarbeitung im Ruby on Rails-Modell nur mit der Konsole
[Rails] So wenden Sie das in der Hauptanwendung verwendete CSS mit Administrate an
Ändern Sie das Speicherziel des Bildes in der Rails-App in S3. Teil 2
So überprüfen Sie das Protokoll im Docker-Container
Ich habe versucht, die Sitzung in Rails zu organisieren
So zeigen Sie eine Webseite in Java an
[Rails] Verwendung von Auswahlfeldern in Ransack
Wie man Rails allgemein ins Japanische übersetzt
So trennen Sie .scss nach Controller in Rails
So fügen Sie die html.erb-Klasse in Rails bedingt hinzu
[Japanische Lokalisierung] i18n-Schienen Nur einfache Anzeige der japanischen Lokalisierungsansicht
So implementieren Sie eine ähnliche Funktion in Rails