Ich verwende Büroklammer, um mehrere Bilder hochzuladen. Ich benutze auch Active Admin. Bis jetzt war ich in der Lage, mehrere Bilder hochzuladen und sie meinem "Produkt" -Modell zuzuordnen. Ich bin auch in der Lage, die "Namen" aller verbundenen Bilder in der Indexseite anzuzeigen. Allerdings kann ich nicht herausfinden, wie zu Anzeige 'alle' Bilder (nicht nur Namen) auf meiner Show-Seite des Produktmodells. Bitte finden Sie den Code unten.Wie mehrere Bilder in ActiveAdmin angezeigt werden
\ app \ models \ product.rb
has_many :images, :dependent => :destroy
accepts_nested_attributes_for :images, :allow_destroy => true
\ app \ models \ image.rb
belongs_to :product
has_attached_file :image, :styles => {
:thumb=> "100x100>",
:small => "300x300>",
:large => "600x600>"
}
\ app \ admin \ products.rb
index do
column "Images" do |product|
product.images.map(&:image_file_name).join("<br />").html_safe
end
end
show do |product|
attributes_table do
row "Images" do
ul do
li do
image_tag(product.images.first.image.url(:small))
end
li do
image_tag(product.images.second.image.url(:small))
end
li do
image_tag(product.images.last.image.url(:small))
end
end
end
end
end
I habe etwas gefunden, das funktioniert, aber das ist wirklich schlechte Programmierung. Ich habe derzeit 3 Bilder zu jedem Produkt und ich verwende den obigen Code in meinem Showblock. Bitte schlagen Sie einen besseren Weg vor, dies zu tun.
Ich habe den Code so geändert, dass das Bild nur angezeigt wird, wenn es vorhanden ist. 'image_tag (product.images.first.image.url (: small)) if! product.images.first.nil?' Dieser Code hat jedoch immer noch eine Begrenzung von max. 3 Bilder. Bitte beraten Sie, wie Sie dies besser erreichen können. – ansh0809
meinst du, du musst jedes bild nicht nur 3 von ihnen anzeigen? – Fivell