問題事象
Rails6のform_with file_fieldを活用した際に
本来であれば「ファイルを選択して下さい」と記載されたボタンを押下した際に
ファイルの選択画面が表示され、任意の画像ファイル等を選択することができるが、
そのファイル選択画面が表示されなく、ファイルを選択する事ができない状態となっている。
(ボタンが反応していない状況)
また、エラーは出ていない状況です。
byebugでform部分でgallery.gallery_imagesがbuildで来ていることも確認しています。
基本情報
ruby 2.6.3p62
Rails 6.0.2.2
carrierwave (2.1.0) ※関係ないと思いますが、、
該当のView
<%= form_with url: admin_gallery_create_path(@gallery) do |f| %>
<div class="image">
<div class="image__upload">
<%= f.fields_for :gallery_images, @gallery.gallery_images.build do |i| %>
<%= i.label :gallery_image %>
<%= i.file_field :gallery_image %>
<div class="message">
<div class="message__upload">
<%= i.fields_for :gallery_messages, @image.gallery_messages.build do |m| %>
<%= m.label :message %>
<%= m.text_area :message %>
<% end %>
</div>
</div>
<% end %>
</div>
</div>
<div class="ImageMessageCreate">
<%= f.submit "追加する" %>
</div>
<% end %>
該当のController
def index
@galleries = Gallery.all
@gallery = Gallery.new
@image = @gallery.gallery_images.build
end
該当のModel
gallery
class Gallery < ApplicationRecord
belongs_to :admin_user
has_many :gallery_images, dependent: :destroy
accepts_nested_attributes_for :gallery_images
gallery_image
class GalleryImage < ApplicationRecord
belongs_to :gallery
has_many :gallery_messages, dependent: :destroy
accepts_nested_attributes_for :gallery_messages
mount_uploader :gallery_image, GalleryImageUploader
もし、なにか気になる点ございましたら、コメントいただけると幸いです。
お手数ですが、ご確認よろしくお願いいいたします。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
0
答えになっていなくて申し訳ありませんが
<div class="message">
<div class="message__upload">
<%= i.fields_for :gallery_messages, @image.gallery_messages.build do |m| %>
<%= m.label :message %>
<%= m.text_area :message %>
<% end %>
</div>
</div>
を削除するとどうなるのでしょうか?
検証ツールで要素がどうなっているのかも確認するといいかもしれません。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.22%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2020/08/14 15:51 編集
コメントありがとうございます!!
コメント頂いたとおり、下記で再度確認しましたが、状況変わりなく、
「ファイルを選択してください」ボタンは依然反応しない状況となります。。
```
<%= form_with url: admin_gallery_create_path(gallery) do |f| %>
<div class="image">
<div class="image__upload">
<%= f.fields_for :gallery_images, gallery.gallery_images.build do |i| %>
<%= i.label :gallery_image %>
<%= i.file_field :gallery_image, class: "form-control" %>
<div class="message">
<div class="message__upload">
<%# i.fields_for :gallery_messages, image.gallery_messages.build do |m| %>
<%# m.label :message %>
<%# m.text_area :message %>
<%# end %>
</div>
</div>
<% end %>
</div>
</div>
<div class="ImageMessageCreate">
<%= f.submit "追加する" %>
</div>
<% end %>
```
また、検証で要素を確認しました、、
nameとidを見ると、galleryからネストできていないような??気がしています。
なぜできていないかは、謎ですが少しmodelとかも再確認してみます!
```
<input class="form-control" type="file" name="[gallery_images][gallery_image]" id="_gallery_images_gallery_image">
```