# has\_many :through basic fubar

**URL:** <https://discuss.rubyonrails.org/t/has-many-through-basic-fubar/60716>\
**Category:** rubyonrails-talk\
**Created:** [September 4, 2011, 2:08am UTC](https://discuss.rubyonrails.org/t/has-many-through-basic-fubar/60716 "2011-09-04T02:08:47Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![11155](https://avatars.discourse-cdn.com/v4/letter/1/d26b3c/32.png) [@11155](https://discuss.rubyonrails.org/u/11155)\
**Post date:** [September 4, 2011, 2:08am UTC](https://discuss.rubyonrails.org/t/has-many-through-basic-fubar/60716/1 "2011-09-04T02:08:47Z")

</div>

I'm trying to do, what seems like, a very basic join. However, the association just doesn't seem to work. I'm sure it's something very simple but I don't know what.

class Role \< ActiveRecord::Base &nbsp;&nbsp;belongs\_to :packages &nbsp;&nbsp;belongs\_to :users end

class Package \< ActiveRecord::Base &nbsp;&nbsp;has\_many :roles &nbsp;&nbsp;has\_many :users, :through =\> :roles end

class User \< ActiveRecord::Base &nbsp;&nbsp;has\_many :roles &nbsp;&nbsp;has\_many :packages, :through =\> :roles end

&nbsp;&nbsp;create\_table "packages", :force =\> true do |t| &nbsp;&nbsp;&nbsp;&nbsp;t.string "tracking" &nbsp;&nbsp;&nbsp;&nbsp;t.datetime "created\_at" &nbsp;&nbsp;&nbsp;&nbsp;t.datetime "updated\_at" &nbsp;&nbsp;end

&nbsp;&nbsp;create\_table "roles", :force =\> true do |t| &nbsp;&nbsp;&nbsp;&nbsp;t.integer "user\_id" &nbsp;&nbsp;&nbsp;&nbsp;t.integer "package\_id" &nbsp;&nbsp;&nbsp;&nbsp;t.string "role" &nbsp;&nbsp;end

&nbsp;&nbsp;create\_table "users", :force =\> true do |t| &nbsp;&nbsp;&nbsp;&nbsp;t.string "user\_name" &nbsp;&nbsp;&nbsp;&nbsp;t.string "first" &nbsp;&nbsp;&nbsp;&nbsp;t.string "last" &nbsp;&nbsp;end

With that, I can do:

@package = Package.new @roles = @package.roles

@roles.inspect # OK

But I can't do:

@package = Package.new @users = @package.users

or not:

@package.roles.collect { |a| a.users } @users = @package.users

Nada...

---

<div class="post-metadata">

**Author:** ![Lionel](https://avatars.discourse-cdn.com/v4/letter/l/f9ae1b/32.png) [@Lionel](https://discuss.rubyonrails.org/u/Lionel)\
**Post date:** [September 4, 2011, 5:54am UTC](https://discuss.rubyonrails.org/t/has-many-through-basic-fubar/60716/2 "2011-09-04T05:54:00Z")

</div>

Try to change :

---

<div class="post-metadata">

**Author:** ![11155](https://avatars.discourse-cdn.com/v4/letter/1/d26b3c/32.png) [@11155](https://discuss.rubyonrails.org/u/11155)\
**Post date:** [September 4, 2011, 3:35pm UTC](https://discuss.rubyonrails.org/t/has-many-through-basic-fubar/60716/3 "2011-09-04T15:35:37Z")

</div>

Oh for Pete's sake. I thought I tried that both ways... I probably had some other error at the time. THANK YOU SO MUCH!!
