0

我收到此错误:

undefined method `each' for nil:NilClass

这里:

<% @images.each do |image| %>

这是我填充的地方@images

class Users::RegistrationsController < Devise::RegistrationsController

  def edit
    @images= Dir.glob("public/assets/images/users/#{current_user.id}/med/*")
    super
  end
  ...

我的上传表格:

  <%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: {:multipart => true }) do |f| %>
    <div class="form-group">
      <label for = 'file-upload', class='btn btn-large btn-block btn-info'>
        <span class="glyphicon glyphicon-upload" aria-hidden="true"></span> Upload Picture
        <%= f.file_field :image, id: "file-upload", onchange: "this.form.submit()" %>
      </label>
    </div>
  <% end %>

我只有在回形针验证失败时才会收到此错误(如图像 > 1mb)

    has_attached_file :image, {styles: { small: "24x24#", med: "100x100#", large: "200x200#" },
                  :url  => "/assets/images/users/:id/:style/:basename.:extension",
                  :path => ":rails_root/public/assets/images/users/:id/:style/:basename.:extension",
                  :default_url => "/assets/images/users/default/:style/default.png",
                  :keep_old_files => true}

    validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/
    validates_attachment_size :image, :less_than => 1.megabytes

问题是我看不到文件上传失败应该如何处理。

4

1 回答 1

0

我使用文件类并检查文件是否存在并检查“文件”是否真的是文件而不是目录。我还检查并确保数据库字段不为空,如果是则标记记录(以便稍后删除)。

File.exist?('image.jpg')  && File.file?('image.jpg')

我作为 Sidekiq Worker(后台作业)的一部分执行此操作,我正在检查多个上传更新相关对象作为作业的一部分。

于 2015-03-14T00:18:03.307 回答