ruby-on-rails - 重新显示表单后 CarrierWave 不保存上传

标签 ruby-on-rails ruby upload carrierwave

我有一个 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)

它似乎通过参数中的 attachment_cache 正确传递了附件,但它并没有保存附件,因为它没有 params[:model][:attachment] 字段。

它没有说明载波部分的任何进一步步骤,以使上传在 CarrierWave GitHub 上的表单重新显示中工作。 .

最佳答案

这是一个有点老的问题,但在我将强参数添加到 Controller 后它对我有用,如下所示:

#controller
def object_params
  params.require(:object).permit(:attachment, :attachment_cache)
end

#view
<%= f.file_field :attachment %>
<%= f.hidden_field :attachment_cache %>

关于ruby-on-rails - 重新显示表单后 CarrierWave 不保存上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9783904/

相关文章:

java - 通过java上传图片后检索imgur上传链接

node.js - 指定 block 大小的 Node 读取文件

ruby-on-rails - Rails 引擎 : Helpers only are reloaded when restarting the server

ruby-on-rails - 通过系统调用在 ruby​​ 中嵌套超时的问题

ruby-on-rails - 如何在 session 中存储零用户的目标?

ruby - 使用纯 ruby 进行 Facebook 聊天

ruby-on-rails - ruby 错误 : "No such file or directory -- script/generate (LoadError)"

iphone - iOS 5 - AFNetworking - 上传视频

ruby-on-rails - Puma 开发中的 Rails 5.1 ActiveJob 未执行特定的排队作业

ruby-on-rails - Rails - 在同一个请求上处理多个不同的时区