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

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs