5

CarrierwaveをRails 4に使用するアプリケーションを移植していますが、強力なパラメータに問題があります。私はここにアップロードした画像を渡す方法ですRails 4、Strong Parameters、およびCarrierwaveを使用したファイルアップロード

accepts_nested_attributes_for :photos 

でモデルを持っている:私はphotos_attributesを受け入れるパラメータを記述する方法を見つけ出すように見えることはできませんしかし

{ 
    # ... 
    "model"=> 
    { 
     # ... 
     "photos_attributes"=> 
     { 
      "1362752177921"=> 
      { 
       "image"=>"test.jpg", 
      } 
     } 
    } 
} 

省は、SQLに表示されないと、これは第二の問題である前に作成された私は.permit(photos_attributes: [])を試してみましたが、私はpermit!を使用する場合、それは単に、それらをスキップし、uuid:強力なパラメータについて

photos.uuid may not be NULL: INSERT INTO "photos" ("created_at", "model_id", "image", "title", "updated_at") VALUES (?, ?, ?, ?, ?) 

ドキュメントがありますここには欠けており、私はどのように進むべきかも分かりません。

更新 これは、ネストされた属性で働いていた:

params.permit(..., :photos_attributes => ['id', 'title', 'image', '_destroy']) 

しかしCarrierwaveまたはネストされたフォームのいずれかが最初のRails 4のために更新する必要があるように見えます。常に空の画像を保存しようとします。 (strong_paramsなし)同じコードこれは、ネストされた属性で働いていたのRails 3に

答えて

1

に動作します:

params.permit(..., :photos_attributes => ['id', 'title', 'image', '_destroy']) 

しかしCarrierwaveまたはネストされたフォームのいずれかが最初のRails 4のために更新する必要があるように見えます。私はちょうど:reject_ifで取り除かれた空の画像をいつも保存しようとしますが、それでもまだ100ではありません。

関連する問題