2017-06-19 2 views
0

In meiner Anwendung möchte ich mehrere Fotos sehen. Ich habe keinen spezifischen Fehler, aber ich sehe nur den Namen des Fotos.Mehrere Bild-Uploads mit Carrierwave und Rails 5

In meinem Controller:

private 

# Use callbacks to share common setup or constraints between actions. 
def set_place 
    @place = Place.find(params[:id]) 
end 

# Never trust parameters from the scary internet, only allow the white list through. 
def place_params 
    params.require(:place).permit(:title, :description, 
           :price,:country,{photos: []}, 
end 

In meinem Modell:

mount_uploader :photos, PhotoUploader 

In meiner Form:

<%= f.file_field :photos, as: :file, multiple: true %> 

In Show Ansicht:

<dd><%= image_tag @place.photos_url %></dd> 

Ich verwende eine MySQL-Datenbank.

+0

Bitte reparieren Frage Formatierung funktioniert und fügen Sie Informationen über das Speichern hinzu des Datensatzes und der hochgeladenen Dateien. Was funktioniert nicht wie erwartet? – mdesantis

+0

Ich möchte einige Bilder sehen, aber ich arbeite nicht. – dalyl

Antwort

0

Statt mount_uploader Verwenden mount_uploaders (mit einem ‚s‘ am Schluss) zu CarrierWave angeben, dass er mehrere Dateien erwarten müssen werden (doc here)

Dann, wenn es fertig ist, wird er zurück geben ein Array mit jedem Ihrer Dateien in den Weg, so dass alles, was Sie tun müssen, ist die folgende:

<dd> 
    <% @place.photos.each do |p| %> 
    <%= image_tag p %> 
    <!-- if this doesn't work, try this --> 
    <%= image_tag p.url %> 
    <% end %> 
</dd> 

ich lasse Sie den Code bei Bedarf anpassen, sagen Sie mir nur, wenn es

+0

funktioniert nicht, ich sehe das '' [] '' und nicht Bilder – dalyl

+0

Wo siehst du []? – Jaeger

+0

Dies ist eine Balise alt .., in Code-Quelle für image_tag p.url: Waf dalyl

Verwandte Themen