在ruby rails应用程序中上传文件

时间:2013-12-01 15:48:46

标签: ruby-on-rails ruby

我正在尝试上传文件并保存在特定路径中。我使用以下代码来做同样的事情。

在我看来,我使用的是file_field标签

<%= file_field 'upload', 'datafile', {:value => @original_file_name} %>

控制器

xmlfilepath = DataFile.save(params[:upload][:datafile],@xml_file)

模型

def self.save(file_handle,file_name)
    File.open(file_name, "wb") { |f| f.write(file_handle.read) }
end

但是在上传时我遇到了错误

NoMethodError (undefined method `read' for "thorConfig_2013_11_27_06_52_05.xml":String):

我无法找到解决此错误的方法。如果有人能在这方面帮助我,我会很高兴。

1 个答案:

答案 0 :(得分:0)

我建议为了安全目的而实现类似的东西 (使用paperclip gem)link

或使用类似逻辑实现

希望它有所帮助。

至于您的错误,请确保您的表单上有multipart: true。 错误说“我无法读取对象,无论是null还是空

尝试添加

if file_handle.blank?
  File.open(file_name, "wb") { |f| f.write(file_handle.read) }
end