session/marshalling

I have the following problem with marshalling/saving a model to session. I have 4 models: User, Profile, Customer, Membership. Membership belongs to the other three models, and User, Profile and Customer all have a has_one :through => :memberhsip association to each other. Now I have a registration process over several steps, including the creation of all 4 models. Partially the validation of the models is dependent on the other models. So i need to have them linked to each other from the beginning of the registration process. Also I need them to be saved to session.

Now the problem is, if I do this:

@membership = Membership.new @profile = @membership.build_profile @customer = @membership.build_customer @customer.profile = @profile # <= that’s the problem

And then try to save @customer in the session:

session[:customer] = @customer

There is a 500 internal server error:

NoMethodError (undefined method `marshal_dump' for #<Class:0x2162504>)

And that is only if I establish the link between two has_one :through associations. For example between @profile and @customer, or @customer and @user.

Do you habe any idea, how i could solve this problem? I greatly apreciate any help.