así que creo que es Mime :: Tipo y MIME :: tipos que son totalmente independientes de cada uno otro. Tenga en cuenta que es "Mime" vs "MIME".
Por ejemplo,
MIME::Types.type_for("foo.json")
rendimientos
[#<MIME::Type:0x1038b3108 @system=nil, @encoding="8bit", @simplified="application/json", @sub_type="json", @registered=true, @url=["IANA", "RFC4627"], @docs=nil, @obsolete=nil, @extensions=["json"], @raw_sub_type="json", @media_type="application", @raw_media_type="application", @content_type="application/json">]
Sin embargo,
Mime::Type.lookup_by_extension("json")
devuelve
#<Mime::Type:0x1051c4d40 @symbol=:json, @string="text/x-json", @synonyms=[]>
Así que parece que si desea añadir un tipo de modo que se devuelve cuando se utiliza type_for puede utilizar lo siguiente:
>> t = MIME::Type.from_array('video/mp4', %w(m4v))
=> #<MIME::Type:0x1055de3b8 @system=nil, @encoding="base64", @simplified="video/mp4", @sub_type="mp4", @registered=true, @url=nil, @docs=nil, @obsolete=nil, @extensions=["m4v"], @raw_sub_type="mp4", @media_type="video", @raw_media_type="video", @content_type="video/mp4">
>> MIME::Types.add(t)
Type video/mp4 already registered as a variant of video/mp4.
=> [#<MIME::Type:0x1055de3b8 @system=nil, @encoding="base64", @simplified="video/mp4", @sub_type="mp4", @registered=true, @url=nil, @docs=nil, @obsolete=nil, @extensions=["m4v"], @raw_sub_type="mp4", @media_type="video", @raw_media_type="video", @content_type="video/mp4">]
>> MIME::Types.type_for("example.m4v")
=> [#<MIME::Type:0x1055de3b8 @system=nil, @encoding="base64", @simplified="video/mp4", @sub_type="mp4", @registered=true, @url=nil, @docs=nil, @obsolete=nil, @extensions=["m4v"], @raw_sub_type="mp4", @media_type="video", @raw_media_type="video", @content_type="video/mp4">]
>>
La advertencia cuando complemento se llama es un poco preocupante por lo que probablemente debería averiguar cómo para agregar su extensión al tipo "video/mp4". Para obtener más información, consulte la documentación para MIME::Types y MIME::Type.
'¿Qué no está reconociendo it' significa? –
Significa que no se devuelve nada cuando hago 'type_for' como en mi ejemplo anterior. Otras extensiones (.mov, .mp3, etc.) devuelven el tipo fino. – Shpigford
¿Está seguro de que el navegador envía su tipo de mimo? Porque si su navegador no lo envía, no puede usarlo en su aplicación de Rails – shingara