[英]What is the content type of json file to AWS S3 with ruby?
我想用ruby用paperclip将json文件上传到S3。 我编码如下,但返回以下错误。
未定义的方法“合并”为“应用程序/ JSON”:字符串
你能告诉我如何设置json文件的内容类型吗?
product_definition.rb
class ProductDefinition < ActiveRecord::Base
belongs_to :product
has_attached_file :meta_data,
:storage => :s3,
:s3_credentials => "#{Rails.root}/config/s3.yml",
:url => ":s3_domain_url",
:path => "/assets/:id/:style/:basename.:extension",
:s3_host_name => "s3-ap-northeast-1.amazonaws.com"
validates_attachment :meta_data, content_type: 'application/json'
end
products_controller.rb
@product_definition = ProductDefinition.create(meta_data:sample.json)
如果您使用的是Paperclip的最新版本,则好像是错误地将参数格式化为validates_attachment_content_type
。 我认为应该是:
validates_attachment :meta_data, content_type: { content_type: 'application/json' }
请参阅Paperclip自述文件中的示例: https : //github.com/thoughtbot/paperclip#validations
编辑:我得出这个结论的方法是注意到错误,它试图在字符串上调用merge
。 合并是在Hash上调用的,因此,它期望:content_type
的Hash值。
您所拥有的完全是github上当前文档的状态,但是它不起作用: https : //github.com/thoughtbot/paperclip其他示例使用了不同的格式化匹配类型的方式-非常混乱。
似乎起作用的是语法更改,该更改可以追溯到几年前,即:
validates_attachment :meta_data, attachment_content_type: {content_type: 'application/json'}
您还可以将一组可接受的内容类型放入数组中,例如
validates_attachment :meta_data, attachment_content_type: {content_type: ['application/json', 'application/doc']}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.