Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 0 additions & 11 deletions lib/jsonapi/rails/action_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,6 @@ module Rails
module ActionController
REVERSE_MAPPING_KEY = 'jsonapi_deserializable.reverse_mapping'.freeze

def self.prepended(base)
base.class_eval do
extend ClassMethods
end
end

def render(options = {})
reverse_mapping = request.env[REVERSE_MAPPING_KEY]
super(options.merge(_reverse_mapping: reverse_mapping))
end

module ClassMethods
def deserializable_resource(key, options = {}, &block)
_deserializable(key, options,
Expand Down
2 changes: 1 addition & 1 deletion lib/jsonapi/rails/railtie.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class Railtie < ::Rails::Railtie
initializer 'jsonapi-rails.action_controller' do
ActiveSupport.on_load(:action_controller) do
require 'jsonapi/rails/action_controller'
prepend ::JSONAPI::Rails::ActionController
extend ::JSONAPI::Rails::ActionController::ClassMethods

Mime::Type.register MEDIA_TYPE, :jsonapi

Expand Down
4 changes: 4 additions & 0 deletions lib/jsonapi/rails/renderer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ def self.render(errors, options)
# @api private
def rails_renderer(renderer)
proc do |json, options|
# Renderer proc is evaluated in the controller context, so it
# has access to the request object.
reverse_mapping = request.env[ActionController::REVERSE_MAPPING_KEY]
options = options.merge(_reverse_mapping: reverse_mapping)
json = renderer.render(json, options) unless json.is_a?(String)
self.content_type ||= Mime[:jsonapi]
self.response_body = json
Expand Down