diff --git a/vendor/plugins/design/lib/acts_as_design.rb b/vendor/plugins/design/lib/acts_as_design.rb index ac5aac5..2440687 100644 --- a/vendor/plugins/design/lib/acts_as_design.rb +++ b/vendor/plugins/design/lib/acts_as_design.rb @@ -25,10 +25,11 @@ class ActiveRecord::Base serialize :design_data attr_protected :design_data - after_create do |design| + before_create do |design| template = Design::Template.find(design.template) while design.boxes.size < template.number_of_boxes - design.boxes << Design::Box.new(:name => 'Block') + n = design.boxes.size + 1 + design.boxes << Design::Box.new(:name => 'Block', :number => n) end end diff --git a/vendor/plugins/design/test/acts_as_design_test.rb b/vendor/plugins/design/test/acts_as_design_test.rb index 0d03316..7d546de 100644 --- a/vendor/plugins/design/test/acts_as_design_test.rb +++ b/vendor/plugins/design/test/acts_as_design_test.rb @@ -51,12 +51,17 @@ class ActsAsDesignTest < Test::Unit::TestCase end def test_should_create_boxes_when_creating + + DesignTestUser.delete_all + Design::Box.delete_all + user = DesignTestUser.create!(:name => 'A test user') # default template (test/designs/templates/default/default.yml) defines # 3 boxes assert_equal 3, Design::Template.find('default').number_of_boxes assert_equal 3, user.boxes.size + assert_equal 3, Design::Box.count end end -- libgit2 0.21.2