【发布时间】:2012-04-04 17:58:38
【问题描述】:
我有一个 Rails 应用程序,它最初使用 Paperclip 进行文件上传,但是,当我看到 CarrierWave 显然在表单重新显示上具有“持久上传”类型的功能时,我决定尝试一下。
在我看来,我有以下几点:
= f.input :attachment
= f.hidden_field :attachment_cache
如果表单验证失败并重新显示,它会正确缓存文件,但是当我更正验证错误并重新提交时,附件不会被处理。
Started POST "/section/model" for 127.0.0.1 at 2012-03-20 08:51:56 +0000
Processing by Client::WishesController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"zkdPQBsAnsNzx555rkwZ5+clfnLaXg+NtL+GdFei188=", "model"=>{"title"=>"Sample", "content"=>"Sample content", "contact_name"=>"Mr Sample", "contact_email"=>"sample@example.com", "attachment_cache"=>"20120320-0851-42559-1644/SampleAttachment.pdf"}, "commit"=>"Create Wish"}
Client Load (0.3ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 1 LIMIT 1
(0.2ms) BEGIN
SQL (0.4ms) INSERT INTO `models` (`attachment`, `client_id`, `contact_email`, `contact_name`, `content`, `created_at`, `status`, `title`, `updated_at`, `upload_content_type`, `upload_file_name`, `upload_file_size`, `upload_updated_at`) VALUES (NULL, 1, 'sample@example.com', 'Mr Sample', 'Sample content', '2012-03-20 08:51:56', 'Unresolved', 'Sample', '2012-03-20 08:51:56', NULL, NULL, NULL, NULL)
它似乎通过 params 中的 attachment_cache 正确传递了附件,但它没有保存附件,因为它没有 params[:model][:attachment] 字段。
它没有说明载波部分的任何进一步步骤,以使上传在CarrierWave GitHub 上的表单重新显示中工作。
【问题讨论】:
-
如果我使用批量分配创建/更新并设置单独的变量,它可以工作,但我想知道是否有办法在没有批量分配的情况下做到这一点?
-
为此考虑opening a ticket。
-
你找到答案了吗?
-
您还必须将字段名称添加到强参数
标签: ruby-on-rails ruby upload carrierwave