私はコントローラIDに配列foo_ids
を送信しています。値の配列を可能にするために、私が使用します。Rails - 空の配列を持つ強力なパラメータ
params.permit(foo_ids: [])
さて、問題は、私はfoo_ids
の空の配列を送信する場合、パラメータは無視されていることです。空の配列として行うすべてのfoos
を消去する代わりに、foo_ids
は許可されていないため、関連付けはそのままの状態になります。
an empty array is converted to nil in railsが原因である可能性があります。強いパラメータが単一のスカラー値ではなく、スカラー値の配列を探しているので、この値は無視されます。
誰もこれを解決する良い方法を提案できますか?ありがとう!更新コントローラのアクションで
追加情報
、私は2つのケースを処理できるようにする必要があります。 foo_ids
を空の配列に設定する必要があります。私はまた、単に別のフィールドを更新したい場合はfoo_ids
を無視する必要があります。この2番目のケースでnilが機能しない場合は、foo_ids
を空の配列に設定します。
に。思考? – futbolpal
それはうまくいくでしょう。私はハッシュの中にネストされたパラメータに対してこれを行う必要があったいくつかのケースを持っていたので、あなたの使い方に応じてそれらを扱いたいかもしれません。 –