Has_many :through behaviour trouble

Hi there!

I have the following classes, but I don’t undersant why, when I try to
create some

class Wishlist < ActiveRecord::Base
has_many :activated_user_wishlists, :class_name => “UserWishlist”,
:conditions => {:registered => true}
has_many :users_registered, :through => :activated_user_wishlists,
:class_name => “User”, :source => “wishlist”
end

class UserWishlist < ActiveRecord::Base
belongs_to :wishlist
belongs_to :user
end

class User < ActiveRecord::Base
has_many :user_wishlists
has_many :wishlists, :through => :user_wishlists
end

And when I try to do that:
Wishlist.first.users_registered << User.first
And then look at the join table, that’s what I see:

#<UserWishlist user_id: nil, wishlist_id: 1, admin: false, registered:
true>]

Someone know why user_id is nil?

Hi Guillem V.,

There was a small issue with association build on Wishlist Model.

class Wishlist < ActiveRecord::Base
has_many :activated_user_wishlists, :class_name => “UserWishlist”,
:conditions => {:registered => true}
has_many :users_registered, :through => :activated_user_wishlists,
:source => :user
end

You can use the above mentioned code(changes in users_registered
association). Then it will works fine.

In has_many :through association, specifying the source(Model name) is
enough.

Cheers,
vadivelan