2017-11-03 11 views
0

ids: [null, 1, 2, null, 3]のようなキーでRails APIにリクエストを送信する必要があります。残念ながら、Railsはこの配列からすべてのヌルを切り捨てるので、params[:ids][1, 2, 3]を返します。配列にこれらのnullが必要です。jsonリクエストでヌルの配列を送信する - Rails 5

どのようにしてRailsを削除できないのですか?私はnullの代わりに空の文字列を送ることができますが、あまりエレガントではありません。

+4

Railsがこの配列からすべてのnullを切り捨てるとはどういう意味ですか?私の知る限りでは、既定のレールにはこのような機能はありません。 –

+0

配列コンパクトメソッドを使用しているかどうかにかかわらず、コードを共有してください。 –

答えて

0

使用JSONの

IDを置き換える代わりに、アレイの構造:[NULL、1、2、NULL、3]

IDを持ちます:{0、null、1、1、2、2、3、null、4、3}

とレール5に

params[:ids].values 
[nil, 1, 2, nil, 3] 
4

ようなコントローラアクセスその中に、同じSQLインジェクション脆弱性を持っていないし、そうnilに空の配列値を変更することになるdeep_munge方法を削除したつもりが、テストを見て最もよく記述された動作を生成する設定オプションに残っています。 application.rbで

詳細は

https://apidock.com/rails/v3.2.8/ActionDispatch/Request/deep_munge

https://til.hashrocket.com/posts/e1bed09363-deepmunge-i-hardly-knew-ye

ライン

config.action_dispatch.perform_deep_munge = false 

の下に追加して、別の環境ではのアプリケーション

0

を再起動します値の解釈が異なります。

私は最善の方法は、あなたが達成したい結果に従って、これらのエントリを交換することであると思う:

ids.map! { |id| id == null ? nullValue : id }.flatten! 

nullValueあなたは、配列を持っていることを期待しているものです。

関連する問題