我正在尝试使用carrierwave在我的rails应用程序中上传文件,目前这是我的代码:
控制器:
def fileSave
@code.store!(code)
end
查看:
= form_for @code = Code.new(params[:code]), :as => :code, :html => {:multipart => true} do |f|
div class="browse"
span
= f.file_field :code
= f.submit 'Upload'
者:
# encoding: utf-8
class CodeUploader < CarrierWave::Uploader::Base
def pre_limit file
#require 'debugger'; debugger
if file && file.size > 100.megabytes
raise Exception.new('too large')
end
true
end
storage :file
def store_dir
"public/uploads"
end
def extension_white_list
%w(txt js ttf html)
end
def filename
"file.txt" if original_filename
end
end
型号:
require 'carrierwave/orm/activerecord'
class Code < ActiveRecord::Base
attr_accessor :code
mount_uploader :code, CodeUploader
end
我的问题是我无法存储上传的文件。 x [我确定这就像3行代码,但我无法弄明白。此外,要上传的文件应该是txt(可能是在查看扩展名列表时)。
感谢所有读者和回答者。 :}
P.S。我想知道我是否可以创建某种虚构的文件,一个不是真正创建的文件。问题是如果从文本区域获取文本并创建文件(虚构文件),将文本存储在内部,然后最终保存整个文件(可能使用carrierwave并手动存储)。