Skip to main content
 首页 » 编程设计

ruby-on-rails之没有ActiveRecord的文件上传

2024年09月03日16Free-Thinker

如何在不将文件附加到 Activity 记录的情况下处理Rail中的文件上传?
我只想将文件写入磁盘。

谢谢,

请您参考如下方法:

如果我正确理解您的需求,那么最简单的例子就是:

Controller :

  class UploadController < ApplicationController 
  def new 
 
  end 
 
  def create 
    name = params[:upload][:file].original_filename 
    path = File.join("public", "images", "upload", name) 
    File.open(path, "wb") { |f| f.write(params[:upload][:file].read) } 
    flash[:notice] = "File uploaded" 
    redirect_to "/upload/new" 
  end 
end 

风景:
<% flash.each do |key, msg| %> 
    <%= content_tag :div, msg, :class => [key, " message"], :id => "notice_#{key}" %> 
<% end %> 
<% form_tag '/upload/create', { :multipart => true } do %> 
    <p> 
    <%= file_field_tag 'upload[file]' %> 
    </p> 
    <p> 
        <%= submit_tag "Upload" %> 
    </p> 
<% end %> 

这样一来,您可以上传任何文件,而无需进行任何检查或验证,而我认为这没有什么用。

如果我自己做,那么我将使用 validatable gemtableless gem之类的东西,只是不再支持无表。这些 gem 可让您验证上传的内容,使其更加理智。