Every repository with this icon (
Every repository with this icon (
| Description: | Dirty ActiveRecord Versioning (update of acts_as_versioned) edit |
-
Hello,
I am encountering a problem using rails 2.2.2 and 2.3.2 where after version_fu has been added to a model it becomes impossible to initialize rails or run migrations if the versioned_class table doesn't exist:
$ rake db:migrate:reset (in /home/travis/projects/rails/core) rake aborted! Mysql::Error: Table 'core_development.group_versions' doesn't exist: SHOW FIELDS FROM `group_versions`The exception is thrown at line 69 of version_fu.rb:
# Finally setup which columns to version self.versioned_columns = versioned_class.new.attributes.keys - [versioned_class.primary_key, versioned_foreign_key, version_column, 'created_at', 'updated_at']I'm getting around this issue by simply checking to see if the table exists:
# Finally setup which columns to version if versioned_class.table_exists? self.versioned_columns = versioned_class.new.attributes.keys - [versioned_class.primary_key, versioned_foreign_key, version_column, 'created_at', 'updated_at'] endIs anybody else experiencing this?
Comments
-
error if versioned model and it's attribute have same name
1 comment Created about 1 month ago by kampangptlkI have StandardCost model with standard_cost attribute. I found this error:
ActiveRecord::AssociationTypeMismatch in ItemsController#create ::StandardCost(#89439340) expected, got BigDecimal(#75888510)
Table name: standard_costs
#id :integer(4) not null, primary key
item_id :integer(4)
standard_cost :decimal(12, 3) default(1.0)
version :integer(4) default(1)
as_of :date
created_at :datetime
updated_at :datetime
standard_cost_versions
t.integer "standard_cost_id" t.integer "item_id" t.decimal "standard_cost", :precision => 12, :scale => 3, :default => 1.0 t.integer "version", :default => 1 t.datetime "created_at" t.datetime "updated_at"/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/association_proxy.rb:263:in
raise_on_type_mismatch' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/belongs_to_association.rb:22:inreplace' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations.rb:1258:instandard_cost=' /home/karuna/Documents/shared/manufacturing/vendor/plugins/version_fu/lib/version_fu.rb:102:insend' /home/karuna/Documents/shared/manufacturing/vendor/plugins/version_fu/lib/version_fu.rb:102:ininstatiate_revision' /home/karuna/Documents/shared/manufacturing/vendor/plugins/version_fu/lib/version_fu.rb:101:ineach' /home/karuna/Documents/shared/manufacturing/vendor/plugins/version_fu/lib/version_fu.rb:101:ininstatiate_revision' /home/karuna/Documents/shared/manufacturing/vendor/plugins/version_fu/lib/version_fu.rb:89:incheck_for_new_version' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:178:insend' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:178:inevaluate_method' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:166:incall' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:93:inrun' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:92:ineach' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:92:insend' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:92:inrun' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:276:inrun_callbacks' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/callbacks.rb:344:incallback' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/callbacks.rb:249:increate_or_update' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:2539:insave_without_validation' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/validations.rb:1009:insave_without_dirty' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/dirty.rb:79:insave_without_transactions' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/transactions.rb:229:insend' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/transactions.rb:229:inwith_transaction_returning_status' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:136:intransaction' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/transactions.rb:182:intransaction' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/transactions.rb:228:inwith_transaction_returning_status' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/transactions.rb:196:insave' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/transactions.rb:208:inrollback_active_record_state!' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/transactions.rb:196:insave' /home/karuna/Documents/shared/manufacturing/app/controllers/items_controller.rb:29:increate'Comments
kampangptlk
Thu Oct 22 03:59:08 -0700 2009
| link
ugh, sorry dude. I'll change the foreign key name first










