Skip to content

Commit 6ed17e2

Browse files
author
José Valim
committed
Merge pull request #11004 from fredwu/4-0-activemodel-inclusion-chain-fix
Fixed ActiveModel::Model's inclusion chain
2 parents f81dd36 + 2d9b73b commit 6ed17e2

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

activemodel/lib/active_model/model.rb

Lines changed: 2 additions & 0 deletions
Original file line numberOriginal file lineDiff line numberDiff line change
@@ -79,6 +79,8 @@ def initialize(params={})
79
params.each do |attr, value|
79
params.each do |attr, value|
80
self.public_send("#{attr}=", value)
80
self.public_send("#{attr}=", value)
81
end if params
81
end if params
82+
83+
super
82
end
84
end
83

85

84
# Indicates if the model is persisted. Default is +false+.
86
# Indicates if the model is persisted. Default is +false+.

activemodel/test/cases/model_test.rb

Lines changed: 12 additions & 0 deletions
Original file line numberOriginal file lineDiff line numberDiff line change
@@ -3,7 +3,14 @@
3
class ModelTest < ActiveModel::TestCase
3
class ModelTest < ActiveModel::TestCase
4
include ActiveModel::Lint::Tests
4
include ActiveModel::Lint::Tests
5

5

6+
module DefaultValue
7+
def initialize(*args)
8+
@attr ||= 'default value'
9+
end
10+
end
11+
6
class BasicModel
12
class BasicModel
13+
include DefaultValue
7
include ActiveModel::Model
14
include ActiveModel::Model
8
attr_accessor :attr
15
attr_accessor :attr
9
end
16
end
@@ -29,4 +36,9 @@ def test_persisted_is_always_false
29
object = BasicModel.new(:attr => "value")
36
object = BasicModel.new(:attr => "value")
30
assert object.persisted? == false
37
assert object.persisted? == false
31
end
38
end
39+
40+
def test_mixin_inclusion_chain
41+
object = BasicModel.new
42+
assert_equal object.attr, 'default value'
43+
end
32
end
44
end

0 commit comments

Comments
 (0)