ruby-on-rails – Rails 3和JSON:默认渲染器,但是自定义mime类
使用ROAR(
https://github.com/apotonick/roar)并且不使用ActiveRecord或我想要的任何视图模板:
>使用默认的JSON重定者,但我自己的mime类型使用respond_with呈现JSON 配置/初始化/ mime_types.rb: Mime::Type.register "application/vnd.xxx-v1+json",:xxx_v1 控制器/ API / base_controller.rb class Api::V1::BaseController < ActionController::Base respond_to :xxx_v1 ActionController.add_renderer :xxx_v1 do |obj,options| json = obj.to_json self.content_type ||= Mime::Type.lookup('application/vnd.xxx-v1+json') self.response_body = json end end 控制器/ API / user_controller.rb: class Api::V1::UsersController < Api::V1::BaseController def index respond_with User.all end end 获得http://domain/users 错误:缺少模板api / v1 / users / index,api / v1 / base / index with {:handlers => [:erb,:builder],:formats => [:xxx_v1],:locale => [ :en,:en]} 看了好几个帖子之后 – ===小更新=== – 当我直接在控制器中使用渲染时,它正在工作!始终与respond_with的问题… render :xxx_v1 => User.all 解决方法
要使用自定义mime类型自动解析http正文,请执行以下操作:
config / initializers / mime_types.rb: ActionDispatch::ParamsParser::DEFAULT_PARSERS[Mime::Type.lookup('application/vnd.xxx_v1+json')]=lambda do |body| JSON.parse(body) end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |