如何在没有模型的轨道中使用载波?

Posted

技术标签:

【中文标题】如何在没有模型的轨道中使用载波?【英文标题】:How to use carrierwave without a model in rails? 【发布时间】:2015-11-19 22:38:20 【问题描述】:

我正在尝试使用以下代码在我的 rails 应用程序中保存一个 png

uploader = AvatarUploader.new
uploader.store!(params[:image])

但它抛出 ArgumentError (UTF-8 中的无效字节序列)

我在这里做错了什么?

我正在使用 AFNetworking 通过 ios 应用程序发布它。

【问题讨论】:

【参考方案1】:

下面是来自this answer 的简短摘录,根据您的问题改编:

uploader = AvatarUploader.new
File.open(params[:image]) do |file|
  something = uploader.store!(file)
end
uploader.retrieve_from_store!(self.file_name)

【讨论】:

谢谢.. 但我最终使用了carrierwave-ios gem。这就像一个魅力。有时间会测试一下。【参考方案2】:

如果您的params[:image]TempfileStringIO 的实例,则应在此实例上调用read 方法。

你的代码应该是

uploader = AvatarUploader.new
image = params[:image]
uploader.store!(image.read)

【讨论】:

这是我传递的 post 参数。我试过你的代码。它抛出“未定义的方法'read'”错误

以上是关于如何在没有模型的轨道中使用载波?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用导入语法加载三轨道控件?

如何在错误轨道“警告:299 Elasticsearch 内置安全功能未启用。如果没有身份验证,您的集群可以...”中解决此问题

在模型中使用 Rails 应用程序配置变量

如何使用音频文件作为输入实现单边带抑制载波调制?

没有表的Rails模型

如何在 Rails 应用程序中编辑 .vtt 轨道的提示文本