Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

ActiveModel::Model inclusion chain backward compatibility #11020

Merged
merged 1 commit into from

3 participants

@fredwu

Thanks @woto for identifying a backward compatibility issue: woto@9fc20cf

Related PR: #11004

cc @josevalim @rafaelfranca

@woto

Ok, now works fine. Just one question because i can't understand what's happend now when super() calls in model.rb? Because i don't see where to go call in debugger.

@rafaelfranca rafaelfranca merged commit 7c69a82 into from
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
This page is out of date. Refresh to see the latest.
View
2  activemodel/lib/active_model/model.rb
@@ -80,7 +80,7 @@ def initialize(params={})
self.public_send("#{attr}=", value)
end if params
- super(*params)
+ super()
end
# Indicates if the model is persisted. Default is +false+.
View
20 activemodel/test/cases/model_test.rb
@@ -10,6 +10,7 @@ def self.included(klass)
def initialize(*args)
@attr ||= 'default value'
+ super
end
end
@@ -19,8 +20,15 @@ class BasicModel
attr_accessor :attr
end
+ class BasicModelWithReversedMixins
+ include ActiveModel::Model
+ include DefaultValue
+ attr_accessor :attr
+ end
+
class SimpleModel
include ActiveModel::Model
+ attr_accessor :attr
end
def setup
@@ -32,11 +40,17 @@ def test_initialize_with_params
assert_equal "value", object.attr
end
+ def test_initialize_with_params_and_mixins_reversed
+ object = BasicModelWithReversedMixins.new(attr: "value")
+ assert_equal "value", object.attr
+ end
+
def test_initialize_with_nil_or_empty_hash_params_does_not_explode
assert_nothing_raised do
BasicModel.new()
- BasicModel.new nil
+ BasicModel.new(nil)
BasicModel.new({})
+ SimpleModel.new(attr: 'value')
end
end
@@ -58,8 +72,4 @@ def test_mixin_initializer_when_args_exist
def test_mixin_initializer_when_args_dont_exist
assert_raises(NoMethodError) { SimpleModel.new(hello: 'world') }
end
-
- def test_mixin_when_no_ancestors
- assert SimpleModel.new
- end
end
Something went wrong with that request. Please try again.