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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails 5

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

Q&A

解決済

1回答

847閲覧

formのinput valueを配列で受け取っても先頭しか登録されない

pecchan

総合スコア592

Ruby on Rails 5

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

0グッド

0クリップ

投稿2020/09/01 04:32

rails5.2です。

画像の複数登録を作ってます。
複数画像を選んで登録すると、先頭の画像ファイルしか保存されません。

carriewaveを使っており、JSONで受け取るようにしてます。

ruby

1create_table :items do |t| 2 t.json :images

ビューは以下のようになっており、

ruby

1 <div class="form-image"> 2 <div class="form-image__title"> 3 <%= f.label :images %> <%= label_tag(:images, "(任意)", class: 'optional_field') %> 4 <div class="form-image__text">10枚まで追加できます</div> 5 <%= f.fields_for :images do |image| %> 6 <div class="clearfix"> 7 <!-- 写真のプレビューとインプットボタンのul --> 8 <ul id="previews"> 9 <li class="input"> 10 <label class="upload-label"> 11 <div class="upload-label__text"> 12 <p>ドラッグアンドドロップまたはクリックしてファイルをアップロード</p> 13 <div class="input-area"> 14 <%= image.file_field :image, name: "item[images][]", class: "hidden image_upload",multiple: true %> 15 </div> 16 </div> 17 </label> 18 </li> 19 </ul> 20 </div> 21 <% end %> 22 </div> 23 </div>

配列で受け取れるように、このようにしました。

ruby

1name: "item[images][]"

配列の指定が悪いのかと思い、

ruby

1name: "item[][images]"

のようにすると、登録時に
「このページは動作していませんこの問題が何度も発生する場合は、サイト所有者にお問い合わせください。
HTTP ERROR 400」
というエラーになりました。

サーバログ

log

1Invalid or incomplete POST params 2Started POST "/items" for 58.13.43.197 at 2020-09-01 04:28:13 +0000 3Cannot render console from 58.13.43.197! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255 4 5Rack::QueryParser::ParameterTypeError (expected Array (got Rack::QueryParser::Params) for param `item'): 6 7rack (2.2.2) lib/rack/query_parser.rb:109:in `normalize_params' 8rack (2.2.2) lib/rack/multipart/parser.rb:195:in `block (2 levels) in result' 9rack (2.2.2) lib/rack/multipart/parser.rb:104:in `get_data' 10rack (2.2.2) lib/rack/multipart/parser.rb:193:in `block in result' 11rack (2.2.2) lib/rack/multipart/parser.rb:127:in `block in each' 12rack (2.2.2) lib/rack/multipart/parser.rb:127:in `each' 13rack (2.2.2) lib/rack/multipart/parser.rb:127:in `each' 14rack (2.2.2) lib/rack/multipart/parser.rb:192:in `result' 15rack (2.2.2) lib/rack/multipart/parser.rb:81:in `parse' 16rack (2.2.2) lib/rack/multipart.rb:54:in `extract_multipart' 17rack (2.2.2) lib/rack/request.rb:594:in `parse_multipart' 18rack (2.2.2) lib/rack/request.rb:446:in `POST' 19actionpack (5.2.4.3) lib/action_dispatch/http/request.rb:382:in `block (2 levels) in POST' 20actionpack (5.2.4.3) lib/action_dispatch/http/parameters.rb:109:in `block in parse_formatted_parameters' 21actionpack (5.2.4.3) lib/action_dispatch/http/parameters.rb:109:in `fetch' 22actionpack (5.2.4.3) lib/action_dispatch/http/parameters.rb:109:in `parse_formatted_parameters' 23actionpack (5.2.4.3) lib/action_dispatch/http/request.rb:381:in `block in POST' 24rack (2.2.2) lib/rack/request.rb:69:in `fetch' 25rack (2.2.2) lib/rack/request.rb:69:in `fetch_header' 26actionpack (5.2.4.3) lib/action_dispatch/http/request.rb:380:in `POST' 27actionpack (5.2.4.3) lib/action_dispatch/http/parameters.rb:55:in `parameters' 28actionpack (5.2.4.3) lib/action_dispatch/http/filter_parameters.rb:43:in `filtered_parameters' 29actionpack (5.2.4.3) lib/action_controller/metal/instrumentation.rb:23:in `process_action' 30actionpack (5.2.4.3) lib/action_controller/metal/params_wrapper.rb:256:in `process_action' 31activerecord (5.2.4.3) lib/active_record/railties/controller_runtime.rb:24:in `process_action' 32actionpack (5.2.4.3) lib/abstract_controller/base.rb:134:in `process' 33actionview (5.2.4.3) lib/action_view/rendering.rb:32:in `process' 34actionpack (5.2.4.3) lib/action_controller/metal.rb:191:in `dispatch' 35actionpack (5.2.4.3) lib/action_controller/metal.rb:252:in `dispatch' 36actionpack (5.2.4.3) lib/action_dispatch/routing/route_set.rb:52:in `dispatch' 37actionpack (5.2.4.3) lib/action_dispatch/routing/route_set.rb:34:in `serve' 38actionpack (5.2.4.3) lib/action_dispatch/journey/router.rb:52:in `block in serve' 39actionpack (5.2.4.3) lib/action_dispatch/journey/router.rb:35:in `each' 40actionpack (5.2.4.3) lib/action_dispatch/journey/router.rb:35:in `serve' 41actionpack (5.2.4.3) lib/action_dispatch/routing/route_set.rb:840:in `call' 42rack (2.2.2) lib/rack/tempfile_reaper.rb:15:in `call' 43rack (2.2.2) lib/rack/etag.rb:27:in `call' 44rack (2.2.2) lib/rack/conditional_get.rb:40:in `call' 45rack (2.2.2) lib/rack/head.rb:12:in `call' 46actionpack (5.2.4.3) lib/action_dispatch/http/content_security_policy.rb:18:in `call' 47rack (2.2.2) lib/rack/session/abstract/id.rb:266:in `context' 48rack (2.2.2) lib/rack/session/abstract/id.rb:260:in `call' 49actionpack (5.2.4.3) lib/action_dispatch/middleware/cookies.rb:670:in `call' 50activerecord (5.2.4.3) lib/active_record/migration.rb:559:in `call' 51actionpack (5.2.4.3) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call' 52activesupport (5.2.4.3) lib/active_support/callbacks.rb:98:in `run_callbacks' 53actionpack (5.2.4.3) lib/action_dispatch/middleware/callbacks.rb:26:in `call' 54actionpack (5.2.4.3) lib/action_dispatch/middleware/executor.rb:14:in `call' 55actionpack (5.2.4.3) lib/action_dispatch/middleware/debug_exceptions.rb:61:in `call' 56web-console (3.7.0) lib/web_console/middleware.rb:135:in `call_app' 57web-console (3.7.0) lib/web_console/middleware.rb:22:in `block in call' 58web-console (3.7.0) lib/web_console/middleware.rb:20:in `catch' 59web-console (3.7.0) lib/web_console/middleware.rb:20:in `call' 60actionpack (5.2.4.3) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call' 61railties (5.2.4.3) lib/rails/rack/logger.rb:38:in `call_app' 62railties (5.2.4.3) lib/rails/rack/logger.rb:26:in `block in call' 63activesupport (5.2.4.3) lib/active_support/tagged_logging.rb:71:in `block in tagged' 64activesupport (5.2.4.3) lib/active_support/tagged_logging.rb:28:in `tagged' 65activesupport (5.2.4.3) lib/active_support/tagged_logging.rb:71:in `tagged' 66railties (5.2.4.3) lib/rails/rack/logger.rb:26:in `call' 67sprockets-rails (3.2.1) lib/sprockets/rails/quiet_assets.rb:13:in `call' 68actionpack (5.2.4.3) lib/action_dispatch/middleware/remote_ip.rb:81:in `call' 69actionpack (5.2.4.3) lib/action_dispatch/middleware/request_id.rb:27:in `call' 70rack (2.2.2) lib/rack/method_override.rb:24:in `call' 71rack (2.2.2) lib/rack/runtime.rb:22:in `call' 72activesupport (5.2.4.3) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call' 73actionpack (5.2.4.3) lib/action_dispatch/middleware/executor.rb:14:in `call' 74actionpack (5.2.4.3) lib/action_dispatch/middleware/static.rb:127:in `call' 75rack (2.2.2) lib/rack/sendfile.rb:110:in `call' 76railties (5.2.4.3) lib/rails/engine.rb:524:in `call' 77puma (4.3.5) lib/puma/configuration.rb:228:in `call' 78puma (4.3.5) lib/puma/server.rb:713:in `handle_request' 79puma (4.3.5) lib/puma/server.rb:472:in `process_client' 80puma (4.3.5) lib/puma/server.rb:328:in `block in run' 81puma (4.3.5) lib/puma/thread_pool.rb:134:in `block in spawn_thread' 82^A^C- Gracefully stopping, waiting for requests to finish

複数画像(input value)の配列を登録するにはどうすれば良いでしょうか?

宜しくお願いします。

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

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

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

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

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

guest

回答1

0

自己解決

js側が原因でした。
お騒がせしました。

投稿2020/09/01 07:47

pecchan

総合スコア592

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問