【问题标题】:File upload with Rails 4, Strong Parameters and Carrierwave使用 Rails 4、强参数和 Carrierwave 上传文件
【发布时间】:2013-02-24 04:16:44
【问题描述】:

我正在将一个使用 Carrierwave 的应用程序移植到 Rails 4,但我遇到了强参数的问题。我有一个模型

accepts_nested_attributes_for :photos

上传图片的传递方式如下:

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

但是我似乎无法弄清楚如何编写将接受photos_attributes 的参数。

我试过.permit(photos_attributes: []),但它只是跳过它们,当我使用permit!时,在保存之前创建的uuid不会出现在SQL中,这是第二个问题:

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'])

但看起来应该首先为 Rails 4 更新 Carrierwave 或 Nested Form。它只是试图一直保存一个空图像。相同的代码(没有 strong_params)在 Rails 3 中工作。

【问题讨论】:

    标签: file-upload carrierwave nested-forms ruby-on-rails-4 strong-parameters


    【解决方案1】:

    这适用于嵌套属性:

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

    但看起来应该首先为 Rails 4 更新 Carrierwave 或 Nested Form。它只是试图一直保存一个空图像,我用:reject_if 消除了它,但它仍然不是 100 工作。

    【讨论】:

      猜你喜欢
      • 2014-05-24
      • 2016-04-05
      • 2013-11-20
      • 1970-01-01
      • 2016-01-06
      • 2014-02-20
      • 1970-01-01
      • 2018-06-23
      • 1970-01-01
      相关资源
      最近更新 更多