私はクリップを使って複数の画像をアップロードしています。私はActive Adminも使用しています。これまでは、複数の画像をアップロードして、それらを「製品」モデルに関連付けることができました。また、関連するすべての画像の「名前」をインデックスページに表示することもできます。しかし、私はどのようにディスプレイのすべての製品モデルの私のショーページの画像(だけではない)を見つけることができません。以下のコードを見つけてください。ActiveAdminで複数の画像を表示するには
\アプリ\モデル\ product.rb
has_many :images, :dependent => :destroy
accepts_nested_attributes_for :images, :allow_destroy => true
\アプリ\モデル\ image.rb
belongs_to :product
has_attached_file :image, :styles => {
:thumb=> "100x100>",
:small => "300x300>",
:large => "600x600>"
}
\アプリ\管理者\ 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動作するものが見つかりましたが、これは本当に悪いプログラミングです。私は現在、各製品に3つの画像が関連付けられており、私はショーブロック内で上記のコードを使用しています。 これを行うより良い方法を提案してください。
私はイメージが存在する場合にのみ表示するようにコードを変更しました。 !image.images.first.nil? 'ただし、このコードにはまだmaxという制限があります。 3枚の画像。より良い方法でこれを達成する方法についてアドバイスをしてください。 – ansh0809
あなたは3つだけでなくそれぞれの画像を表示する必要があるということですか? – Fivell