I''m trying to work with habtm and push_with_attributes and have a problem: class Objekt < ActiveRecord::Base has_and_belongs_to_many :aktions end class Aktion < ActiveRecord::Base has_and_belongs_to_many :objekts end CREATE TABLE `aktions` ( `id` int(11) NOT NULL auto_increment, `name` varchar(32) NOT NULL default '''', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=4 ; CREATE TABLE `aktions_objekts` ( `aktion_id` int(11) NOT NULL default ''0'', `objekt_id` int(11) NOT NULL default ''0'', `condition` varchar(255) NOT NULL default '''', PRIMARY KEY (`aktion_id`,`objekt_id`) ) TYPE=MyISAM; CREATE TABLE `objekts` ( `id` int(11) NOT NULL auto_increment, `name` varchar(32) NOT NULL default '''', `code` varchar(32) NOT NULL default '', PRIMARY KEY (`id`), ) TYPE=MyISAM AUTO_INCREMENT=3 ; and the following test code: def test_change_condition obj = Objekt.find(1) aktion = Aktion.find(1) obj.aktions.clear obj.aktions.push_with_attributes(aktion, :condition => "true" ) obj.aktions.reload a = obj.aktions.first a.condition = "false" a.save end def test_change_aktion obj = Objekt.find(1) aktion = Aktion.find(1) obj.aktions.clear obj.aktions.push_with_attributes(aktion, :condition => "false" ); obj.aktions.reload aktion.name = "bla" assert aktion.save end I get the following errors: 1) Error: test_change_aktion(ObjektTest): ActiveRecord::StatementInvalid: Unknown column ''condition'' in ''field list'': UPDATE aktions SET `code` = '' xyz'', `condition` = ''false'', `id` = ''2'', `name` = ''bla'' WHERE id = ''2'' c:/dev/ruby/lib/ruby/gems/1.8/gems/activerecord-1.1.0/lib/active_record/connection_adapters/abstract_adapter.rb:339: in `log'' [...] 2) Error: test_change_condition(ObjektTest): ActiveRecord::StatementInvalid: Unknown column ''objekt_id'' in ''field list'': UPDATE aktions SET `objekt_id` = ''1'', `code` = '' xyz'', `condition` = ''false'', `aktion_id` = ''2'', `id` = ''2'', `name` = ''gaga'' WHERE id = ''2'' [...] I must be missing something really trivial, but I don''t grok it... Any ideas? thanks Jens-Christian