我收到此错误:
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 %>
我在回形针验证失败时才会出现此错误(如图像&gt; 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
问题是我不知道应该如何处理文件上传失败。
答案 0 :(得分:0)
我使用文件类并检查文件是否存在,并检查'file'是否真的是文件而不是目录。我还检查并确保数据库字段不为空并标记记录(以后删除),如果是。
File.exist?('image.jpg') && File.file?('image.jpg')
我作为Sidekiq工作人员(后台工作)的一部分这样做,我正在检查多个上传,更新相关对象作为工作的一部分。