質問: ### 前提・実現したいこと Railsでアプリ作成中です。 User/edit.html.erbのユーザー編集画面で、別モデルであるImagesのPOSTがモーダル上でできないことがわかりました。 UserモデルのPOSTは、モーダル上ででき、ImagesモデルのPOSTがモーダルでなければできることから、なにかしらRailsの機能としてモーダル上では別モデルの POSTができないようになっているのではないかと推測しています。 具体的にどこが原因なのか、Railsのどの仕様なのか教えていただけると嬉しいです。 1. users/edit.html.erbのモーダル上でImagesモデルのフォームを送信 2. image_controllerのcreateアクションへ 3. DBに保存されリダイレクトされ元の画面へ。 上記の流れの中で、1のフォーム送信ボタンを押下後、image_controllerを通らずにusers/edit.html.erbに戻ってきてしまいます。 Imageモデルは、image_uploaderをmountしています。 ### 発生している問題・エラーメッセージ フォーム送信後、 ``` localhost:3000/*****/edit?utf8=✓&authenticity_token=S08quUa**************************D&action=edit&route=users&idParams=3&image%5Bimage%5D=&commit=変更 ``` のようなURLが発行されedit画面に戻ってきています。 ### 該当のソースコード users/edit.html.erb ``` <% if @user.image %> <%= image_tag(@user.image , :class => "user-cover-image") %> <% else %> <%= image_tag "default.jpg" , :class => "user-cover-image" %> <% end %> × カバー写真を編集する <%= form_for(@image, :url => {:controller => :images, :action => :create}, html: { multipart: true }) do |f| %> <%= hidden_field_tag "action", params[:action] %> <%= hidden_field_tag "route", "users" %> <%= hidden_field_tag "idParams", @user.id %> <%= f.file_field :image , accept: 'image/*', :style=>"display:none;", id: 'image_img', class: "icon" %> 写真を選択 <%= image_tag(@image.image ,:class => "cover-image-preview-inner image_present_img")%> <%= f.submit "変更", class: "btn submit_btn" %> <% end %> ``` ### 試したこと Users/edit/html/erbのフォームを限りなくシンプルにしたり、form_tagに変えてみたりしましたがどれも全く同じ挙動になりました。そのため、画像送信やフォームが原因ではなく、モーダル上であることが原因だと推測しています。 ### 補足情報(FW/ツールのバージョンなど) ルーティングもコントローラーも設定しています。
回答: ``` <%= form_for(@image, :url => {:controller => :images, :action => :create}, html: { multipart: true }) do |f| %> ``` この箇所は出力されるhtmlではどのようになっていますでしょうか? ヒントになるのではないかと思います。