after_create not creating the right object

I have 2 tables... club and forum, which use the "type" as I'm subclassing the Club and Forum objects. Tables are:

clubs: id title type

forums: id club_id title type

I've put an "after_create" callback in the Club as Club has_one Forum:

class Club < ActiveRecord::Base   after_create :create_forum   has_one :forum

  def self.create_forum     # create it (taken from console)     @f = Forum.new(:title => 'Forum', :club_id => self.id)     @f.save     @f.type = 'Forum'     @f.save   end end

Now I know this is a bit "longhand", but if I do it from the console as it is there, I end up with the right data in the table e.g. title, club_id and type are correct. But if I create it via Club.create, it doesn't put in the type at all, thus making the application fail.

Success should put a record in the clubs table and a record in the forums table with the correct type (Club and Forum). What I end up with is a Club in the clubs table and a default type in the Forum table.

Very confused. This should be working, and isn't!

Any help would be very much appreciated.

Paul