根据我的需要,我尝试按以下方式注册自定义MIME :: Type(包括 text / plain )
Mime::Type.register_alias "application/json", :my_json, %w( text/plain text/x-json application/jsonrequest )
但是当我在rails console中运行以下命令时
Mime::MY_JSON
它提供输出
#<Mime::Type:0x1739e5b0 @synonyms=[], @symbol=:my_json, @string="application/json">
这里,@ synames是空数组。
但是,我希望输出像Mime::JSON
=&gt; #<Mime::Type:0x53231d8 @synonyms=["text/x-json", "application/jsonrequest"], @symbol=:json, @string="application/json">
所以我可以像以下一样使用它:
render :my_json => SomeJSON
需要做什么?
修改
这是我在config / initializers中的条目
Mime::Type.register_alias "application/json", :my_json, %w( text/plain text/x-json application/jsonrequest )
答案 0 :(得分:0)
由于这是一个非常古老的问题,对Rails 6
的回答如下-
config/initializers/mime_types.rb
。在下面添加类似的行(如Rails Guides中所述)-Mime::Type.register 'application/json', :my_json, %w( text/plain text/x-json application/jsonrequest )
请不要在这里,如果您遵循Mime::Type API,则
extension_synonyms
参数由符号而不是字符串组成。
string
名称的mime类型,请使用-Mime::Type.lookup('application/json')
symbol
名称的mime类型,请使用-Mime::Type.lookup_by_extension(:my_json)
答案 1 :(得分:-1)
根据paulasmuth,Custom MIME
类型也可以在控制器中完成。只需从控制器中调用此register
方法即可。
Mime::Type.register "application/json", :my_json, %w( text/plain text/x-json application/jsonrequest )
您的mime类型现在可以在respond_to块中使用:
respond_to do
format :your_mime_type do
#do something
end
end
希望这会有所帮助:)