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 belongs_to :packages belongs_to :users end
class Package < ActiveRecord::Base has_many :roles has_many :users, :through => :roles end
class User < ActiveRecord::Base has_many :roles has_many :packages, :through => :roles end
create_table "packages", :force => true do |t| t.string "tracking" t.datetime "created_at" t.datetime "updated_at" end
create_table "roles", :force => true do |t| t.integer "user_id" t.integer "package_id" t.string "role" end
create_table "users", :force => true do |t| t.string "user_name" t.string "first" t.string "last" 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...