好的。如果您不想将文件存储在数据库中并存储在应用程序中,例如资产(自定义文件夹),您可以定义 attr_accessor 定义的非db实例变量:文档并使用form_for - f.file_field
来获取文件,
在控制器中,
@person = Person.new(person_params)
这里person_params
返回白名单params[:person]
(定义自己)
将文件另存为,
dir = "#{Rails.root}/app/assets/custom_path"
FileUtils.mkdir(dir) unless File.directory? dir
document = @person.document.document_file_name # check document uploaded params
File.copy_stream(@font.document, "#{dir}/#{document}")
注意,.gitignore
如果您想再次使用此文件,请将此路径添加到 &中,请添加此asset_path
应用程序的路径application.rb
每当表单读取文件字段时,它都会存储在 tmp 文件夹中,稍后您可以存储在您的位置,我举了存储在资产中的示例
注意:像这样存储文件会增加应用程序的大小,最好使用paperclip
.