質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

0回答

896閲覧

active adminの管理画面内でcocoonを使い画像を登録して表示すると画像が2回ずつ表示されてしまう。

okabayashi

総合スコア4

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/11/12 13:09

編集2021/11/12 13:36

active adminの管理画面内でcocoonを使い、画像を複数枚登録できるようにしました。ただ、登録した画像を表示させると、なぜか1つの画像が2回ずつ表示されてしまいます。
モデルはpostとpost_imageで実装しています。

admin/post.rb

ActiveAdmin.register Post do permit_params( 〜省略〜 post_images_attributes: %i[ id image _destroy ] 〜省略〜 panel t('activerecord.models.post_image'), style: 'margin-top: 30px;' do table_for post.post_images do column t('activerecord.attributes.post_image.image') do |post| image_tag post&.image&.to_s, width: 50, height: 50 end end end 〜省略〜 f.inputs t('activerecord.models.post_image') do render 'admin/posts/post_images', f: f end 〜省略〜 end

app/admin/view/posts/_post_images.html.haml

.shadow.overflow-hidden.sm:rounded-md .px-4.py-5.bg-white.sm:p-6 .grid.grid-cols-6.gap-6 .col-span-6.sm:col-span-4 .nested-items = f.object.post_images.length = f.simple_fields_for :post_images do |image| = render 'admin/posts/post_file_fields', f: image .cocoon.text-center - add_button = capture do .cocoon-disable-color %i.fas.fa-plus-circle ファイルを追加 = link_to_add_association add_button, f, :post_images, partial: 'admin/posts/product_file_fields', data: { association_insertion_node: '.nested-items', association_insertion_method: 'append' }

app/admin/view/posts/_post_file_fields.html.haml

.nested-fields.row .col-span-6.sm:col-span-4 - if f.object.image.to_s.present? = image_tag f.object.image.to_s, class: 'w-32 h-32 flex-shrink-0.mx-auto.bg-black' - else = f.file_field :image, as: :file .cocoon - remove_button = capture do .cocoon-disable-color.r-special-paid-leave--remove-button.r-cocoon %i.fas.fa-minus-circle = t('actions.destroy') = link_to_remove_association remove_button, f

管理画面

下から2番目の画像の上にある2と書いてあるところが、app/admin/view/posts/_post_images.html.hamlの

= f.object.post_images.length

ですので、それより上に表示されている箇所を表示させたくないです。
調べてみたものの、同じような場面の記事がなく解決方法が見当たらない状態です。考えられる原因、対処法などわかる方がいらっしゃいましたら教えていただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問