diff --git a/lib/active_attr/model.rb b/lib/active_attr/model.rb index 0322be6..baf59c5 100644 --- a/lib/active_attr/model.rb +++ b/lib/active_attr/model.rb @@ -4,6 +4,7 @@ require "active_attr/logger" require "active_attr/mass_assignment_security" require "active_attr/query_attributes" +require "active_attr/typecasted_attributes" require "active_model" require "active_support/concern" @@ -27,6 +28,7 @@ module Model include MassAssignmentSecurity include AttributeDefaults include QueryAttributes + include TypecastedAttributes if defined? ActiveModel::Serializable include ActiveModel::Serializable::JSON diff --git a/spec/functional/active_attr/model_spec.rb b/spec/functional/active_attr/model_spec.rb index c980029..ed26252 100644 --- a/spec/functional/active_attr/model_spec.rb +++ b/spec/functional/active_attr/model_spec.rb @@ -11,6 +11,7 @@ module ActiveAttr attribute :first_name attribute :last_name + attribute :age, :type => Integer attr_protected :last_name @@ -84,6 +85,11 @@ def self.name model_class.human_attribute_name(:first_name).should == "First name" end + it "typecasts attributes" do + subject.age = "29" + subject.age.should eql 29 + end + context "attribute defaults" do let :model_class do Class.new do