diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-12-21 14:15:33 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-12-21 16:04:56 -0300 |
commit | 885f59f6852cce670b48680fa0a1b6a4b0998291 (patch) | |
tree | 62c1647da5404b9bcc2b9c1b8a733750ea993060 /activerecord/test/models | |
parent | bf166996f2985c7952b1d27ba4c1789f6b6e4161 (diff) | |
download | rails-885f59f6852cce670b48680fa0a1b6a4b0998291.tar.gz rails-885f59f6852cce670b48680fa0a1b6a4b0998291.tar.bz2 rails-885f59f6852cce670b48680fa0a1b6a4b0998291.zip |
Serialized attribute can be serialized in an integer column
Fix #8575
Conflicts:
activerecord/CHANGELOG.md
activerecord/lib/active_record/attribute_methods/serialization.rb
activerecord/test/cases/serialized_attribute_test.rb
activerecord/test/models/person.rb
Diffstat (limited to 'activerecord/test/models')
-rw-r--r-- | activerecord/test/models/person.rb | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/activerecord/test/models/person.rb b/activerecord/test/models/person.rb index 5991aed55b..07c529d685 100644 --- a/activerecord/test/models/person.rb +++ b/activerecord/test/models/person.rb @@ -89,6 +89,27 @@ class TightDescendant < TightPerson; end class RichPerson < ActiveRecord::Base self.table_name = 'people' - + has_and_belongs_to_many :treasures, :join_table => 'peoples_treasures' end + +class Insure + INSURES = %W{life annuality} + + def self.load mask + INSURES.select do |insure| + (1 << INSURES.index(insure)) & mask.to_i > 0 + end + end + + def self.dump insures + numbers = insures.map { |insure| INSURES.index(insure) } + numbers.inject(0) { |sum, n| sum + (1 << n) } + end +end + +class SerializedPerson < ActiveRecord::Base + self.table_name = 'people' + + serialize :insures, Insure +end |