Ruby on rails 在rails中注册自定义MIME::Type

Ruby on rails 在rails中注册自定义MIME::Type,ruby-on-rails,Ruby On Rails,根据我的需要,我正在尝试注册一个自定义MIME::Type,如下所示(包括text/plain) 但当我在rails控制台中运行以下命令时 Mime::MY_JSON 它提供输出 #<Mime::Type:0x1739e5b0 @synonyms=[], @symbol=:my_json, @string="application/json"> 需要做什么 编辑 这是我在config/initializers中的条目 Mime::Type.register_alias "appl

根据我的需要,我正在尝试注册一个自定义MIME::Type,如下所示(包括text/plain

但当我在rails控制台中运行以下命令时

Mime::MY_JSON
它提供输出

#<Mime::Type:0x1739e5b0 @synonyms=[], @symbol=:my_json, @string="application/json">
需要做什么

编辑

这是我在config/initializers中的条目

Mime::Type.register_alias "application/json", :my_json, %w( text/plain text/x-json application/jsonrequest )
根据,
自定义MIME
类型也可以在控制器中完成。只需从控制器中调用此
register
方法

Mime::Type.register "application/json", :my_json, %w( text/plain text/x-json application/jsonrequest )
您的mime类型现在可以在respond_to block中使用:

respond_to do
 format :your_mime_type do 
  #do something
 end
end

希望这能有所帮助:)

由于这是一个非常老的问题,Rails 6的答案如下-

  • 要注册自定义mime类型,应使用
    config/initializers/mime\u types.rb
    。在此处添加类似的行,如下所示(如中所述)-
Mime::Type.register'application/json',:my_json,%w(text/plain text/x-json application/jsonrequest)
请不要在这里,如果您遵循API,则
扩展名\u同义词
参数由符号而不是字符串组成

  • 要获取具有
    字符串
    名称的mime类型,请使用-
Mime::Type.lookup('application/json')
  • 要获取带有
    符号
    名称的mime类型,请使用-
Mime::Type.lookup_by_扩展名(:my_json)

在控制器中定义MIME类型而不是在初始值设定项中定义MIME类型有什么区别。我只是添加了另一种完成解决方案的方法:)
Mime::Type.register "application/json", :my_json, %w( text/plain text/x-json application/jsonrequest )
respond_to do
 format :your_mime_type do 
  #do something
 end
end