diff --git a/lib/action_controller/serialization.rb b/lib/action_controller/serialization.rb index 0a3fdc044..1158e9751 100644 --- a/lib/action_controller/serialization.rb +++ b/lib/action_controller/serialization.rb @@ -1,5 +1,4 @@ require 'active_support/core_ext/class/attribute' -require 'action_controller/serialization/context' module ActionController module Serialization @@ -47,7 +46,7 @@ def use_adapter? [:_render_option_json, :_render_with_renderer_json].each do |renderer_method| define_method renderer_method do |resource, options| - options.fetch(:serialization_context) { options[:serialization_context] = Context.new(request) } + options.fetch(:context) { options[:context] = request } serializable_resource = get_serializer(resource, options) super(serializable_resource, options) end diff --git a/lib/action_controller/serialization/context.rb b/lib/action_controller/serialization/context.rb deleted file mode 100644 index 304b90255..000000000 --- a/lib/action_controller/serialization/context.rb +++ /dev/null @@ -1,13 +0,0 @@ -module ActionController - module Serialization - class Context - attr_reader :request_url, :query_parameters, :url_helpers - - def initialize(request) - @request_url = request.original_url[/\A[^?]+/] - @query_parameters = request.query_parameters - @url_helpers = ActiveModelSerializers.url_helpers - end - end - end -end diff --git a/lib/active_model/serializer/adapter/json_api.rb b/lib/active_model/serializer/adapter/json_api.rb index a3e3d8f95..6f43d5f30 100644 --- a/lib/active_model/serializer/adapter/json_api.rb +++ b/lib/active_model/serializer/adapter/json_api.rb @@ -206,7 +206,7 @@ def add_included_resources_for(serializer, include_tree, primary_data, included) end def links_for(serializer, options) - JsonApi::PaginationLinks.new(serializer.object, options[:serialization_context]).serializable_hash(options) + JsonApi::PaginationLinks.new(serializer.object, options[:context]).serializable_hash(options) end end end diff --git a/lib/active_model/serializer/adapter/json_api/pagination_links.rb b/lib/active_model/serializer/adapter/json_api/pagination_links.rb index 9c437057b..368d47958 100644 --- a/lib/active_model/serializer/adapter/json_api/pagination_links.rb +++ b/lib/active_model/serializer/adapter/json_api/pagination_links.rb @@ -41,11 +41,11 @@ def pages_from end def url(options) - @url ||= options.fetch(:links, {}).fetch(:self, nil) || request_url + @url ||= options.fetch(:links, {}).fetch(:self, nil) || original_url end - def request_url - @request_url ||= context.request_url + def original_url + @original_url ||= context.original_url[/\A[^?]+/] end def query_parameters diff --git a/lib/active_model/serializer/railtie.rb b/lib/active_model/serializer/railtie.rb index 507df991e..cade0354e 100644 --- a/lib/active_model/serializer/railtie.rb +++ b/lib/active_model/serializer/railtie.rb @@ -7,18 +7,6 @@ class Railtie < Rails::Railtie end end - initializer 'active_model_serializers.url_helpers' do - ActiveSupport.on_load(:action_controller) do - ActiveModelSerializers.url_helpers = Module.new do - include Rails.application.routes.url_helpers - - def self.default_url_options - ActionController::Base.default_url_options - end - end - end - end - initializer 'generators' do |app| app.load_generators require 'generators/serializer/resource_override' diff --git a/lib/active_model_serializers.rb b/lib/active_model_serializers.rb index 28934ce28..922fd876a 100644 --- a/lib/active_model_serializers.rb +++ b/lib/active_model_serializers.rb @@ -7,8 +7,6 @@ module ActiveModelSerializers mattr_accessor :logger self.logger = Rails.logger || Logger.new(IO::NULL) - mattr_accessor :url_helpers - extend ActiveSupport::Autoload autoload :Model diff --git a/test/adapter/json_api/pagination_links_test.rb b/test/adapter/json_api/pagination_links_test.rb index 2cc493582..d9fd2bec5 100644 --- a/test/adapter/json_api/pagination_links_test.rb +++ b/test/adapter/json_api/pagination_links_test.rb @@ -22,10 +22,10 @@ def setup def mock_request(query_parameters = {}, original_url = URI) context = Minitest::Mock.new - context.expect(:request_url, original_url) + context.expect(:original_url, original_url) context.expect(:query_parameters, query_parameters) @options = {} - @options[:serialization_context] = context + @options[:context] = context end def load_adapter(paginated_collection, options = {})