Has_many :through problems -- please help

I’m having a lot of trouble with has_many, :through and could really
use some assistance.

I’ve got a User and Group class. Users can subscribe to groups, and
groups should know who’s subscribed.

I’ve got a join table (group_subscriptions) with group_id, user_id,
and it’s own id element.

Users has “has_many :groups, :through => :group_subscription” and
Groups has “has_many :users, :through => :group_subscription”. I
also have a group_subscription.rb model that has “belongs_to :user
newline belongs_to :group”

I just wanted to test out working with this kind of functionality, so
I’ve got this simple code:

@user = User.find(1)
@group = Group.find(1)
@user.groups << @group
@user.save

but I get the error
“ActiveRecord::HasManyThroughAssociationNotFoundError”. I’m running
Webrick on OS X, have restarted it, and have looked everywhere to no
avail in this problem.

Michael J.
[email protected]

I haven’t tested this out but I suspect that this should work. This is
what I have and it works fine.

User.rb
has_many :group_subscription
has_many :groups, :through => :group_subscription

Group.rb
has_many :group_subscription
has_many :users, :through => :group_subscription

-Eric

Michael J. wrote:

Groups has “has_many :users, :through => :group_subscription”. I also



Rails mailing list
[email protected]
http://lists.rubyonrails.org/mailman/listinfo/rails


Eric G.
http://www.ericgoodwin.com

Oops,
Forgot the plural.

User.rb
has_many :group_subscriptions
has_many :groups, :through => :group_subscriptions

Group.rb
has_many :group_subscriptions
has_many :users, :through => :group_subscriptions

-Eric

Eric G. wrote:

and it’s own id element.
@group = Group.find(1)


Eric G.
http://www.ericgoodwin.com

Yep, I tried both plural and non-plural forms. Rails didn’t like
either.

Michael J.
[email protected]

No dice, that didn’t seem to work :-\

Michael J.
[email protected]

Michael J. wrote:

Yep, I tried both plural and non-plural forms. Rails didn’t like
either.

Michael J.
[email protected]

You also need to have a class for the join model. In
group_subcription.rb:

class GroupSubscription < AR::Base
belongs_to :user
belongs_to :group
end

I have some examples on my blog.


Josh S.
http://blog.hasmanythrough.com

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