ActiveStorageの使用手順通りに、インストールやコーディングを行い、いざアップロードを行うと次のようなエラーが発生。
このエラーの対処法について。
症状
ActiveStorageをインストール&マイグレーションし、has_many_attachedでActiveRecordと関連付けしたことで、画面上にアップロード画面が表示されている状態。
画像を複数選択しアップロードするとエラーが発生する。
原因
原因はストロングパラメータの記述間違い。
def user_params
params.require(:user).permit(:name, :age, :images[])
end
NG :images[]
これでは、キー名が imgaes[] となってしまいます。ここでやりたいことは、imagesというキー名の値に配列を許可することです。
配列を持つパラメータを許可する場合は、パラメータ名: []
とする必要がある。
対処法
ストロングパラメータを次のように修正。
def user_params
params.require(:user).permit(:name, :age, images: [])
end
OK images: []
以上で修正完了です。