Ruby on rails Rails文件上载错误“nil:NilClass的未定义方法`original_filename'”

Ruby on rails Rails文件上载错误“nil:NilClass的未定义方法`original_filename'”,ruby-on-rails,file,upload,Ruby On Rails,File,Upload,我有简单的上传表格: <%= form_for(:product, :url => {:action => 'update_product', :id => @product.id}, :html => {:multipart => true}) do |f| %> <%= f.file_field(:product_image) %> <%= submit_tag('Upload') %> <% end %> 当我

我有简单的上传表格:

<%= form_for(:product, :url => {:action => 'update_product', :id => @product.id}, :html => {:multipart => true}) do |f| %>
<%= f.file_field(:product_image) %>
<%= submit_tag('Upload') %>
<% end %>
当我尝试上载时,对于nil:NilClass,我有一个未定义方法“original_filename”的错误 我做错了什么


我使用Rails 3.0.10和Ruby 1.9.2p290,我猜params[:product][:product_image]为零

尝试使用gem上传文件

来源


我有过这种症状,但时断时续。有时浏览器chrome似乎没有从“选择文件”对话框中选择文件。有一次,我看到在对话框中双击一个文件后,花了几秒钟时间才在浏览器窗口中显示为所选文件。我想如果你在文件被有效选择之前点击“提交”,那么你会得到这个错误

     <h2>Choose file to upload ...</h2>
<%= form_tag({:action => :sched_file_uploader}, :multipart => true) do %>
  <%= file_field_tag 'schedfile' %>
  </br></br>
  <%= text_area_tag(:file_info, "<care to say anything about this file?>", :size => "24x6") %>
  </br></br>
  <input name="upload" type="submit" value="Upload" />
<% end %>

请删除此行:

params[:product][:product_image] = uploaded_image.original_filename

def update_product
    product = Product.find(params[:id])
    if(product)
        uploaded_image = params[:product][:product_image].original_filename
        product.update_attributes(params[:product])
        flash[:notice] = "Successfully updated!"
        redirect_to :action => 'edit_product', :id => product.id
    end
end
params[:product][:product_image] = uploaded_image.original_filename

def update_product
    product = Product.find(params[:id])
    if(product)
        uploaded_image = params[:product][:product_image].original_filename
        product.update_attributes(params[:product])
        flash[:notice] = "Successfully updated!"
        redirect_to :action => 'edit_product', :id => product.id
    end
end