Ruby on rails表单不能处理多个文件

时间:2017-12-29 17:54:03

标签: ruby-on-rails ruby

好吧,我正在搜索这几天,我真的找不到解决方案。我正在尝试发送多个文件并将其存储在本地(或者将来可能存储在s3存储桶中)并保存到数据库中。

我注意到我得到一个字符串而不是文件本身!

我正在使用rails 5.1和ruby 3.2

这是我的代码:

控制器:

    all_files = params[:files]
    all_files.each do |fil|
        File.open(Rails.root.join('public', 'uploads', all_files.original_filename), 'wb') do |filea|
            filea.write(all_files.read)
        end
    end

形式

<%= form_for @docs, :url => docs_create_path, :html => { :multipart => true } do |f| %>
<%= f.file_field :files, :multiple => 'multiple', :name => 'files[]'%>
<%= f.submit( "Upload file" ) %> <% end %>

常见错误:#Array的未定义方法`original_filename':0x0000000006aeb338&gt;

1 个答案:

答案 0 :(得分:1)

all_files.orginal替换为file.orginal

,这是一个小错误
all_files = params[:files]
all_files.each do |file|
    File.open(Rails.root.join('public', 'uploads', file.original_filename), 'wb') do |temp_file|
        temp_file.write(temp_file.read)
    end
end