未验证 提交 a5d334cc 编写于 作者: R Ryuta Kamizono 提交者: GitHub

Merge pull request #39611 from kamipo/marshal_load_legacy_relation

Backward compatibility to work `Marshal.load(legacy_relation.dump)`
......@@ -2,6 +2,17 @@
module ActiveRecord
class PredicateBuilder # :nodoc:
require "active_record/relation/predicate_builder/array_handler"
require "active_record/relation/predicate_builder/basic_object_handler"
require "active_record/relation/predicate_builder/range_handler"
require "active_record/relation/predicate_builder/relation_handler"
require "active_record/relation/predicate_builder/association_query_value"
require "active_record/relation/predicate_builder/polymorphic_array_value"
# No-op BaseHandler to work Mashal.load(File.read("legacy_relation.dump")).
# TODO: Remove the constant alias once Rails 6.1 has released.
BaseHandler = BasicObjectHandler
def initialize(table)
@table = table
@handlers = []
......@@ -156,11 +167,3 @@ def handler_for(object)
end
end
end
require "active_record/relation/predicate_builder/array_handler"
require "active_record/relation/predicate_builder/basic_object_handler"
require "active_record/relation/predicate_builder/range_handler"
require "active_record/relation/predicate_builder/relation_handler"
require "active_record/relation/predicate_builder/association_query_value"
require "active_record/relation/predicate_builder/polymorphic_array_value"
......@@ -418,6 +418,14 @@ def test_skip_preloading_after_arel_has_been_generated
end
end
def test_marshal_load_legacy_relation
path = File.expand_path(
"support/marshal_compatibility_fixtures/legacy_relation.dump",
TEST_ROOT
)
assert_equal 11, Marshal.load(File.read(path)).size
end
test "no queries on empty IN" do
assert_queries(0) do
Post.where(id: []).load
......
......@@ -132,8 +132,8 @@ def test_yaml_encoding_keeps_false_values
private
def yaml_fixture(file_name)
path = File.expand_path(
"../support/yaml_compatibility_fixtures/#{file_name}.yml",
__dir__
"support/yaml_compatibility_fixtures/#{file_name}.yml",
TEST_ROOT
)
File.read(path)
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册