Rails- data中的文件上传是一个对象,如何在视图中返回它?
-
05-07-2019 - |
题
在我的Rails项目中进行上传时,数据库存储
---!ruby / object:文件 content_type:application / octet-stream original_path:my.numbers
如何让它仅在我的视图中返回my.numbers?
非常感谢! 马可
PS。我不想最好使用attachment_fu或任何其他插件。
解决方案
文件上传实际上是由控制器作为File对象而不是数据接收的,因此您有责任将其读入。通常上传的文件保存在临时目录中,并且打开文件句柄存在于PARAMS。
您可以执行以下操作来检索数据:
def create
# Read in data from file into parameter before creating anything
if (params[:model] and params[:model][:file])
params[:model][:file] = params[:model][:file].read
end
@model = MyModel.create(params[:model])
end
您可能需要确保数据库中的列可以存储二进制数据。在MySQL迁移中,这是:二进制列类型。
其他提示
您可以使用帮助程序original_filename访问上载文件的名称。 所以params [:model] [:file] .original_filename
不隶属于 StackOverflow