Использование ROAR (https://github.com/apotonick/roar) и без использования ActiveRecord или каких-либо шаблонов представления, которые я хочу:
- используйте по умолчанию JSON rederer, но мой собственный MIME-тип для рендеринга JSON с response_with
- используйте синтаксический анализатор JSON по умолчанию *1013*, но мой собственный тип MIME для помещения записей тела POST в хэш params.
конфиг / Инициализаторы / mime_types.rb:
Mime::Type.register "application/vnd.xxx-v1+json" , :xxx_v1
Контроллеры / апи / 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
Контроллеры / апи / user_controller.rb:
class Api::V1::UsersController < Api::V1::BaseController
def index
respond_with User.all
end
end
GET http://domain/users
Принять заявку / vnd.xxx-v1
ОШИБКА: отсутствует шаблон api / v1 / users / index, api / v1 / base / index с {: handlers => [: erb,: builder],: format => [: xxx_v1],: locale => [ : en,: en]}
После прочтения нескольких постов вроде
Rails Custom Renderer или rails 3 формат ответа и управление версиями с использованием MIME-типа поставщика в заголовке Accept Я все еще не могу заставить его работать ..
- === небольшое обновление === -
Когда я использую рендер прямо в контроллере, он работает! Всегда проблемы с response_with ...
render :xxx_v1 => User.all