2013-04-17 37 views
6

Tôi đang sử dụng kẹp giấy để tải lên nhiều hình ảnh. Tôi cũng đang sử dụng Active Admin. Cho đến nay, tôi đã có thể tải lên nhiều hình ảnh và liên kết chúng với mô hình 'sản phẩm' của tôi. Tôi cũng có thể hiển thị "tên" của tất cả hình ảnh được liên kết trong trang chỉ mục. Tuy nhiên, tôi không thể tìm hiểu cách hiển thị 'tất cả' các hình ảnh (không chỉ tên) trong trang hiển thị của tôi trong mô hình sản phẩm. Vui lòng tìm mã bên dưới.Cách hiển thị nhiều hình ảnh trong ActiveAdmin

\ ứng dụng \ mô hình \ product.rb

has_many :images, :dependent => :destroy 
accepts_nested_attributes_for :images, :allow_destroy => true 

\ ứng dụng \ mô hình \ image.rb

belongs_to :product 
has_attached_file :image, :styles => { 
    :thumb=> "100x100>", 
    :small => "300x300>", 
    :large => "600x600>" 
    } 

\ ứng dụng \ 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 

tôi đã tìm thấy một cái gì đó mà làm việc nhưng điều này thực sự là chương trình xấu. Hiện tại tôi có 3 hình ảnh được liên kết với từng sản phẩm và tôi đang sử dụng mã ở trên bên trong khối hiển thị của mình. Vui lòng đề xuất cách tốt hơn để thực hiện việc này.

+0

Tôi đã sửa đổi mã để hiển thị hình ảnh chỉ khi nó có mặt. 'image_tag (product.images.first.image.url (: small)) nếu! product.images.first.nil?' Tuy nhiên, mã này vẫn có giới hạn tối đa. 3 hình ảnh. Hãy tư vấn về cách đạt được điều này một cách tốt hơn. – ansh0809

+0

bạn có nghĩa là bạn cần hiển thị từng hình ảnh không chỉ 3 hình ảnh? – Fivell

Trả lời

12

bạn có nghĩa là bạn cần hiển thị từng hình ảnh không chỉ với 3 hình ảnh đó? Nếu có, hãy thử xem

row "Images" do 
    ul do 
    product.images.each do |img| 
     li do 
     image_tag(img.image.url(:small)) 
     end 
    end 
    end 
end 
+0

Cảm ơn rất nhiều ... Tác phẩm này. Tuy nhiên, có cách nào tôi có thể hiển thị hình ảnh đầu tiên như: nhỏ và phần còn lại là: ngón tay cái? – ansh0809

+0

có, trước hết là hiển thị hình ảnh đầu tiên so với phạm vi sử dụng bù đắp (1) và chu trình sử dụng – Fivell

Các vấn đề liên quan