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

标签 ruby-on-rails

如何在不将文件附加到 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 可让您验证上传的内容,使其更加理智。

关于ruby-on-rails - 没有ActiveRecord的文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1676195/

相关文章:

ruby-on-rails - 在这种情况下,Ruby 的 map 方法如何工作?

ruby-on-rails - git-gui--askpass : No such file or directory

ruby-on-rails - :method => 'delete' in link_to doesn't seem to work in Rails 3?

ruby-on-rails - Rails Assets 未在Docker上加载

ruby-on-rails - Rspec:在 Devise::OmniauthCallbacksController 子类中测试重定向

ruby-on-rails - 如何访问在事务中创建的变量?

ruby-on-rails - Ngrok 无法识别的命令

ruby-on-rails - 运行测试时 has_many 通过 Factory Girl 错误

ruby-on-rails - Rails 中一个 View 中的两个 Controller

ruby-on-rails - 默认情况下如何使用字符串键创建哈希