【问题标题】:Ruby on Rails, Formtastic Gem image uploadRuby on Rails、Formtastic Gem 图片上传
【发布时间】:2014-09-12 22:50:53
【问题描述】:

我正在使用 formtastic Gem 将图像上传到我的图像模型。

用户模型有很多图像

我使用 formtastic gem 创建了我的表单:

= semantic_form_for @user, :remote => true, :html => { :class => 'formtastic' } do |f|
  = f.semantic_fields_for :images, @image do |image|
    = image.input :file
             :label => false,
             :as => :file

需要上传图片。该表单还有两个字段名称和描述! 选择要上传的文件后,会显示选择的文件名。

如果我填写了所有必填字段并点击提交,它工作得很好,但如果我在填写所有必填字段之前点击提交,那么表单会要求我填写必填字段并要求我再次选择文件。

预期的行为是表单应该只要求我填写缺少的必填字段,并且应该记住以前选择的文件。 有谁知道它为什么这样做?

任何帮助将不胜感激

【问题讨论】:

    标签: ruby-on-rails rubygems formtastic


    【解决方案1】:

    提交表单后,该文件将附加到请求中。当错误页面返回时,表单字段的值由服务器从提交的信息中提供以重写页面。但是,服务器不知道文件来自您系统的什么位置,因此无法从您的系统重新获取文件以预填充表单。 任何会预先填充文件字段的东西都必须能够进入您计算机上的文件系统。仅当您自己浏览到文件时才允许这样做。 这里提出了几个解决方案:

    How to persist file upload fields after a rails validation error.

    前几个答案建议使用像 Paperclip 这样的附件管理 gem;如果您想避免使用我喜欢的第三个 gem,它建议通过 javascript 对数据进行客户端验证 - 基本上防止用户首先将表单提交到带有错误信息的服务器。当然你还是想在服务器端进行验证。

    【讨论】:

      猜你喜欢
      • 2010-12-23
      • 2013-12-20
      • 2014-12-01
      • 2019-07-13
      • 2018-02-05
      • 2016-11-12
      • 1970-01-01
      • 2021-02-04
      • 1970-01-01
      相关资源
      最近更新 更多