file-upload - 使用 Rails 4、强参数和 Carrierwave 上传文件

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

我正在将一个使用 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。

最佳答案

这适用于嵌套属性:

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

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

关于file-upload - 使用 Rails 4、强参数和 Carrierwave 上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15297058/

相关文章:

ruby-on-rails - decent_exposure 每次创建双条目

ruby-on-rails-3 - 导轨 : multi level nested Forms (accepts nested attributes)

javascript - 上传多个文件显示错误代码 : 3

php - 如何从 PhoneGaps 文件传输 API 检索 POST 数据

php - 包含文件时 POST 数组为空

http - nginx 代理请求缓冲未按预期工作

ruby-on-rails - ffmpegthumbnailer 错误与carrierwave-video-thumbnailer

ruby-on-rails - NameError: 未初始化的常量 CarrierWave::Storage::Fog

ruby-on-rails - 载波:指向现有图像

ruby-on-rails - Rails 茧 : Removing a child without removing the parent (Deeply Nested Forms)