How to create an object in one model at the same time as another

Hi, I'm using Devise and Cancan in my project. I'm a beginner still. I'm trying to create a new Profile object each time a new user is created. Anyone know where to do this, as there is no new action in User controller.

I have a user model and a Profile model

User model: user has_one :profile

Profile model: profile belongs_to :user

How to create an object in one model at the same time as another

use a model callback - http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html

:after_create :create_profile

private

def create_profile

end

Have a look at the Rails Guide on ActiveRecord Associations and you will see that for a has_one association there will be a create_association method defined for you. So in the create action for a user, after it is successfully saved you can call create_profile to create and save a new profile. Alternatively, as Jodi has suggested, you could put this in an after_create callback.

Colin

after it is successfully saved you can call create_profile

to create and save a new profile. Alternatively, as Jodi has suggested, you could put this in an after_create callback.

Colin

Thanks. The after_create callback works nicely as I have no new or create actions in the users controller using Devise/Cancan. Not sure where they but thats another weekend project!