From e3dc10f13393c0b1329f31062a50b5c050159151 Mon Sep 17 00:00:00 2001 From: Fred Wu Date: Wed, 19 Jun 2013 11:21:35 +1000 Subject: Fixed ActiveModel::Model's inclusion chain --- activemodel/lib/active_model/model.rb | 2 ++ activemodel/test/cases/model_test.rb | 12 ++++++++++++ 2 files changed, 14 insertions(+) (limited to 'activemodel') diff --git a/activemodel/lib/active_model/model.rb b/activemodel/lib/active_model/model.rb index 62383a03e8..ee5bc9e4d8 100644 --- a/activemodel/lib/active_model/model.rb +++ b/activemodel/lib/active_model/model.rb @@ -79,6 +79,8 @@ module ActiveModel params.each do |attr, value| self.public_send("#{attr}=", value) end if params + + super end # Indicates if the model is persisted. Default is +false+. diff --git a/activemodel/test/cases/model_test.rb b/activemodel/test/cases/model_test.rb index 24e4ca91c6..375f5907db 100644 --- a/activemodel/test/cases/model_test.rb +++ b/activemodel/test/cases/model_test.rb @@ -3,7 +3,14 @@ require 'cases/helper' class ModelTest < ActiveModel::TestCase include ActiveModel::Lint::Tests + module DefaultValue + def initialize(*args) + @attr ||= 'default value' + end + end + class BasicModel + include DefaultValue include ActiveModel::Model attr_accessor :attr end @@ -29,4 +36,9 @@ class ModelTest < ActiveModel::TestCase object = BasicModel.new(attr: "value") assert object.persisted? == false end + + def test_mixin_inclusion_chain + object = BasicModel.new + assert_equal object.attr, 'default value' + end end -- cgit v1.2.3